slippi package¶
Submodules¶
slippi.event module¶
-
class
slippi.event.EventType¶ Bases:
slippi.util.IntEnumSlippi events that can appear in a game’s raw data.
-
EVENT_PAYLOADS= 53¶
-
GAME_START= 54¶
-
FRAME_PRE= 55¶
-
FRAME_POST= 56¶
-
GAME_END= 57¶
-
FRAME_START= 58¶
-
ITEM= 59¶
-
FRAME_END= 60¶
-
-
class
slippi.event.Start(is_teams, players, random_seed, slippi, stage, is_pal=None, is_frozen_ps=None)¶ Bases:
slippi.util.BaseInformation used to initialize the game such as the game mode, settings, characters & stage.
-
is_teams¶ True if this was a teams game
Type: bool
-
players¶ Players in this game by port (port 1 is at index 0; empty ports will contain None)
Type: tuple( Player| None)
-
random_seed¶ Random seed before the game start
Type: int
-
stage¶ Stage on which this game was played
Type: slippi.id.Stage
-
is_pal¶ added(1.5.0) True if this was a PAL version of Melee
Type: bool | None
-
is_frozen_ps¶ added(2.0.0) True if frozen Pokemon Stadium was enabled
Type: bool | None
-
class
Slippi(version)¶ Bases:
slippi.util.BaseInformation about the Slippi recorder that generated this replay.
-
class
Version(major, minor, revision, build=None)¶ Bases:
slippi.util.Base-
major¶ type: int
-
minor¶ type: int
-
revision¶ type: int
-
-
class
-
class
Player(character, type, stocks, costume, team, ucf=None, tag=None)¶ Bases:
slippi.util.Base-
character¶ Character selected
Type: slippi.id.CSSCharacter
-
stocks¶ Starting stock count
Type: int
-
costume¶ Costume ID
Type: int
-
tag¶ Name tag
Type: str | None
-
class
Type¶ Bases:
slippi.util.IntEnumAn enumeration.
-
HUMAN= 0¶
-
CPU= 1¶
-
-
class
Team¶ Bases:
slippi.util.IntEnumAn enumeration.
-
RED= 0¶
-
BLUE= 1¶
-
GREEN= 2¶
-
-
class
UCF(dash_back=None, shield_drop=None)¶ Bases:
slippi.util.Base-
shield_drop¶ UCF shield drop state
Type: ShieldDrop
-
class
DashBack¶ Bases:
slippi.util.IntEnumAn enumeration.
-
OFF= 0¶
-
UCF= 1¶
-
ARDUINO= 2¶
-
-
class
ShieldDrop¶ Bases:
slippi.util.IntEnumAn enumeration.
-
OFF= 0¶
-
UCF= 1¶
-
ARDUINO= 2¶
-
-
-
-
-
class
slippi.event.End(method, lras_initiator=None)¶ Bases:
slippi.util.BaseInformation about the end of the game.
-
lras_initiator¶ added(2.0.0) Index of player that LRAS’d, if any
Type: int | None
-
-
class
slippi.event.Frame(index)¶ Bases:
slippi.util.BaseA single frame of the game. Includes data for all characters.
-
index¶
-
ports¶ Frame data for each port (port 1 is at index 0; empty ports will contain None)
Type: tuple( Port| None)
-
class
Port¶ Bases:
slippi.util.BaseFrame data for a given port. Can include two characters’ frame data (ICs).
-
class
Data¶ Bases:
slippi.util.BaseFrame data for a given character. Includes both pre-frame and post-frame data.
-
class
Pre(state, position, direction, joystick, cstick, triggers, buttons, random_seed, raw_analog_x=None, damage=None)¶ Bases:
slippi.util.BasePre-frame update data, required to reconstruct a replay. Information is collected right before controller inputs are used to figure out the character’s next action.
-
state¶ Character’s action state
Type: slippi.id.ActionState| int
Button state
Type: Buttons
-
random_seed¶ Random seed at this point
Type: int
-
raw_analog_x¶ added(1.2.0) Raw x analog controller input (for UCF)
Type: int | None
-
damage¶ added(1.4.0) Current damage percent
Type: float | None
-
-
class
Post(character, state, position, direction, damage, shield, stocks, last_attack_landed, last_hit_by, combo_count, state_age=None, flags=None, hit_stun=None, airborne=None, ground=None, jumps=None, l_cancel=None)¶ Bases:
slippi.util.BasePost-frame update data, for making decisions about game states (such as computing stats). Information is collected at the end of collision detection, which is the last consideration of the game engine.
-
character¶ In-game character (can only change for Zelda/Sheik). Check on first frame to determine if Zelda started as Sheik
Type: slippi.id.InGameCharacter
-
state¶ Character’s action state
Type: slippi.id.ActionState| int
-
damage¶ Current damage percent
Type: float
-
shield¶ Current size of shield
Type: float
-
stocks¶ Number of stocks remaining
Type: int
-
last_hit_by¶ Port of character that last hit this character
Type: int | None
-
combo_count¶ Combo count as defined by the game
Type: int
-
state_age¶ added(0.2.0) Number of frames action state has been active. Can have a fractional component for certain actions
Type: float | None
-
flags¶ added(2.0.0) State flags
Type: StateFlags| None
-
hit_stun¶ added(2.0.0) Number of hitstun frames remaining
Type: float | None
-
airborne¶ added(2.0.0) True if character is airborne
Type: bool | None
-
ground¶ added(2.0.0) ID of ground character is standing on, if any
Type: int | None
-
jumps¶ added(2.0.0) Jumps remaining
Type: int | None
-
-
class
-
class
-
class
Item(type, state, direction, velocity, position, damage, timer, spawn_id)¶ Bases:
slippi.util.BaseAn active item (includes projectiles).
-
type¶ Item type
Type: slippi.id.Item
-
state¶ Item’s action state
Type: int
-
damage¶ Amount of damage item has taken
Type: int
-
timer¶ Frames remaining until item expires
Type: int
-
spawn_id¶ Unique ID per item spawned (0, 1, 2, …)
Type: int
-
-
class
Start(random_seed)¶ Bases:
slippi.util.BaseStart-of-frame data.
-
random_seed¶
-
-
class
End¶ Bases:
slippi.util.BaseEnd-of-frame data.
-
class
Event(id, type, data)¶ Bases:
slippi.util.BaseTemporary wrapper used while parsing frame data.
-
id¶
-
type¶
-
data¶
-
class
Id(stream)¶ Bases:
slippi.util.Base-
frame¶
-
-
-
-
class
slippi.event.Position(x, y)¶ Bases:
slippi.util.Base-
x¶
-
y¶
-
-
class
slippi.event.Velocity(x, y)¶ Bases:
slippi.util.Base-
x¶
-
y¶
-
-
class
slippi.event.Direction¶ Bases:
slippi.util.IntEnumAn enumeration.
-
LEFT= -1¶
-
RIGHT= 1¶
-
-
class
slippi.event.Attack¶ Bases:
slippi.util.IntEnumAn enumeration.
-
OTHER= 1¶
-
JAB= 2¶
-
JAB_2= 3¶
-
JAB_3= 4¶
-
JAB_LOOP= 5¶
-
DASH_ATTACK= 6¶
-
FTILT= 7¶
-
UTILT= 8¶
-
DTILT= 9¶
-
FSMASH= 10¶
-
USMASH= 11¶
-
DSMASH= 12¶
-
NAIR= 13¶
-
FAIR= 14¶
-
BAIR= 15¶
-
UAIR= 16¶
-
DAIR= 17¶
-
NEUTRAL_B= 18¶
-
SIDE_B= 19¶
-
UP_B= 20¶
-
DOWN_B= 21¶
-
GETUP_ATTACK= 50¶
-
GETUP_ATTACK_SLOW= 51¶
-
GRAB_RELEASE= 52¶
-
FTHROW= 53¶
-
BTHROW= 54¶
-
UTHROW= 55¶
-
DTHROW= 56¶
-
LEDGE_ATTACK_SLOW= 61¶
-
LEDGE_ATTACK= 62¶
-
-
class
slippi.event.Triggers(logical, physical_x, physical_y)¶ Bases:
slippi.util.Base-
logical¶ Processed analog trigger position
Type: float
-
class
Physical(l, r)¶ Bases:
slippi.util.Base-
l¶
-
r¶
-
-
-
class
slippi.event.Buttons(logical, physical)¶ Bases:
slippi.util.Base-
class
Logical¶ Bases:
slippi.util.IntFlagAn enumeration.
-
TRIGGER_ANALOG= 2147483648¶
-
CSTICK_RIGHT= 8388608¶
-
CSTICK_LEFT= 4194304¶
-
CSTICK_DOWN= 2097152¶
-
CSTICK_UP= 1048576¶
-
JOYSTICK_RIGHT= 524288¶
-
JOYSTICK_LEFT= 262144¶
-
JOYSTICK_DOWN= 131072¶
-
JOYSTICK_UP= 65536¶
-
START= 4096¶
-
Y= 2048¶
-
X= 1024¶
-
B= 512¶
-
A= 256¶
-
L= 64¶
-
R= 32¶
-
Z= 16¶
-
DPAD_UP= 8¶
-
DPAD_DOWN= 4¶
-
DPAD_RIGHT= 2¶
-
DPAD_LEFT= 1¶
-
NONE= 0¶
-
-
class
-
class
slippi.event.LCancel¶ Bases:
slippi.util.IntEnumAn enumeration.
-
SUCCESS= 1¶
-
FAILURE= 2¶
-
-
class
slippi.event.StateFlags¶ Bases:
slippi.util.IntFlagAn enumeration.
-
REFLECT= 16¶
-
UNTOUCHABLE= 1024¶
-
FAST_FALL= 2048¶
-
HIT_LAG= 8192¶
-
SHIELD= 8388608¶
-
HIT_STUN= 33554432¶
-
SHIELD_TOUCH= 67108864¶
-
POWER_SHIELD= 536870912¶
-
FOLLOWER= 34359738368¶
-
SLEEP= 68719476736¶
-
DEAD= 274877906944¶
-
OFF_SCREEN= 549755813888¶
-
slippi.game module¶
-
class
slippi.game.Game(input)¶ Bases:
slippi.util.BaseReplay data from a game of Super Smash Brothers Melee.
-
__init__(input)¶ Parses Slippi replay data from input (stream or path).
-
start¶ Information about the start of the game
Type: slippi.event.Start
-
frames¶ Every frame of the game, indexed by frame number
Type: list( slippi.event.Frame)
-
end¶ Information about the end of the game
Type: slippi.event.End
-
metadata¶ Miscellaneous data not directly provided by Melee
Type: slippi.metadata.Metadata
-
metadata_raw¶ Raw JSON metadata, for debugging and forward-compatibility
Type: dict
-
slippi.id module¶
-
class
slippi.id.ActionState¶ Bases:
slippi.util.IntEnumAn enumeration.
-
DEAD_DOWN= 0¶
-
DEAD_LEFT= 1¶
-
DEAD_RIGHT= 2¶
-
DEAD_UP= 3¶
-
DEAD_UP_STAR= 4¶
-
DEAD_UP_STAR_ICE= 5¶
-
DEAD_UP_FALL= 6¶
-
DEAD_UP_FALL_HIT_CAMERA= 7¶
-
DEAD_UP_FALL_HIT_CAMERA_FLAT= 8¶
-
DEAD_UP_FALL_ICE= 9¶
-
DEAD_UP_FALL_HIT_CAMERA_ICE= 10¶
-
SLEEP= 11¶
-
REBIRTH= 12¶
-
REBIRTH_WAIT= 13¶
-
WAIT= 14¶
-
WALK_SLOW= 15¶
-
WALK_MIDDLE= 16¶
-
WALK_FAST= 17¶
-
TURN= 18¶
-
TURN_RUN= 19¶
-
DASH= 20¶
-
RUN= 21¶
-
RUN_DIRECT= 22¶
-
RUN_BRAKE= 23¶
-
KNEE_BEND= 24¶
-
JUMP_F= 25¶
-
JUMP_B= 26¶
-
JUMP_AERIAL_F= 27¶
-
JUMP_AERIAL_B= 28¶
-
FALL= 29¶
-
FALL_F= 30¶
-
FALL_B= 31¶
-
FALL_AERIAL= 32¶
-
FALL_AERIAL_F= 33¶
-
FALL_AERIAL_B= 34¶
-
FALL_SPECIAL= 35¶
-
FALL_SPECIAL_F= 36¶
-
FALL_SPECIAL_B= 37¶
-
DAMAGE_FALL= 38¶
-
SQUAT= 39¶
-
SQUAT_WAIT= 40¶
-
SQUAT_RV= 41¶
-
LANDING= 42¶
-
LANDING_FALL_SPECIAL= 43¶
-
ATTACK_11= 44¶
-
ATTACK_12= 45¶
-
ATTACK_13= 46¶
-
ATTACK_100_START= 47¶
-
ATTACK_100_LOOP= 48¶
-
ATTACK_100_END= 49¶
-
ATTACK_DASH= 50¶
-
ATTACK_S_3_HI= 51¶
-
ATTACK_S_3_HI_S= 52¶
-
ATTACK_S_3_S= 53¶
-
ATTACK_S_3_LW_S= 54¶
-
ATTACK_S_3_LW= 55¶
-
ATTACK_HI_3= 56¶
-
ATTACK_LW_3= 57¶
-
ATTACK_S_4_HI= 58¶
-
ATTACK_S_4_HI_S= 59¶
-
ATTACK_S_4_S= 60¶
-
ATTACK_S_4_LW_S= 61¶
-
ATTACK_S_4_LW= 62¶
-
ATTACK_HI_4= 63¶
-
ATTACK_LW_4= 64¶
-
ATTACK_AIR_N= 65¶
-
ATTACK_AIR_F= 66¶
-
ATTACK_AIR_B= 67¶
-
ATTACK_AIR_HI= 68¶
-
ATTACK_AIR_LW= 69¶
-
LANDING_AIR_N= 70¶
-
LANDING_AIR_F= 71¶
-
LANDING_AIR_B= 72¶
-
LANDING_AIR_HI= 73¶
-
LANDING_AIR_LW= 74¶
-
DAMAGE_HI_1= 75¶
-
DAMAGE_HI_2= 76¶
-
DAMAGE_HI_3= 77¶
-
DAMAGE_N_1= 78¶
-
DAMAGE_N_2= 79¶
-
DAMAGE_N_3= 80¶
-
DAMAGE_LW_1= 81¶
-
DAMAGE_LW_2= 82¶
-
DAMAGE_LW_3= 83¶
-
DAMAGE_AIR_1= 84¶
-
DAMAGE_AIR_2= 85¶
-
DAMAGE_AIR_3= 86¶
-
DAMAGE_FLY_HI= 87¶
-
DAMAGE_FLY_N= 88¶
-
DAMAGE_FLY_LW= 89¶
-
DAMAGE_FLY_TOP= 90¶
-
DAMAGE_FLY_ROLL= 91¶
-
LIGHT_GET= 92¶
-
HEAVY_GET= 93¶
-
LIGHT_THROW_F= 94¶
-
LIGHT_THROW_B= 95¶
-
LIGHT_THROW_HI= 96¶
-
LIGHT_THROW_LW= 97¶
-
LIGHT_THROW_DASH= 98¶
-
LIGHT_THROW_DROP= 99¶
-
LIGHT_THROW_AIR_F= 100¶
-
LIGHT_THROW_AIR_B= 101¶
-
LIGHT_THROW_AIR_HI= 102¶
-
LIGHT_THROW_AIR_LW= 103¶
-
HEAVY_THROW_F= 104¶
-
HEAVY_THROW_B= 105¶
-
HEAVY_THROW_HI= 106¶
-
HEAVY_THROW_LW= 107¶
-
LIGHT_THROW_F_4= 108¶
-
LIGHT_THROW_B_4= 109¶
-
LIGHT_THROW_HI_4= 110¶
-
LIGHT_THROW_LW_4= 111¶
-
LIGHT_THROW_AIR_F_4= 112¶
-
LIGHT_THROW_AIR_B_4= 113¶
-
LIGHT_THROW_AIR_HI_4= 114¶
-
LIGHT_THROW_AIR_LW_4= 115¶
-
HEAVY_THROW_F_4= 116¶
-
HEAVY_THROW_B_4= 117¶
-
HEAVY_THROW_HI_4= 118¶
-
HEAVY_THROW_LW_4= 119¶
-
SWORD_SWING_1= 120¶
-
SWORD_SWING_3= 121¶
-
SWORD_SWING_4= 122¶
-
SWORD_SWING_DASH= 123¶
-
BAT_SWING_1= 124¶
-
BAT_SWING_3= 125¶
-
BAT_SWING_4= 126¶
-
BAT_SWING_DASH= 127¶
-
PARASOL_SWING_1= 128¶
-
PARASOL_SWING_3= 129¶
-
PARASOL_SWING_4= 130¶
-
PARASOL_SWING_DASH= 131¶
-
HARISEN_SWING_1= 132¶
-
HARISEN_SWING_3= 133¶
-
HARISEN_SWING_4= 134¶
-
HARISEN_SWING_DASH= 135¶
-
STAR_ROD_SWING_1= 136¶
-
STAR_ROD_SWING_3= 137¶
-
STAR_ROD_SWING_4= 138¶
-
STAR_ROD_SWING_DASH= 139¶
-
LIP_STICK_SWING_1= 140¶
-
LIP_STICK_SWING_3= 141¶
-
LIP_STICK_SWING_4= 142¶
-
LIP_STICK_SWING_DASH= 143¶
-
ITEM_PARASOL_OPEN= 144¶
-
ITEM_PARASOL_FALL= 145¶
-
ITEM_PARASOL_FALL_SPECIAL= 146¶
-
ITEM_PARASOL_DAMAGE_FALL= 147¶
-
L_GUN_SHOOT= 148¶
-
L_GUN_SHOOT_AIR= 149¶
-
L_GUN_SHOOT_EMPTY= 150¶
-
L_GUN_SHOOT_AIR_EMPTY= 151¶
-
FIRE_FLOWER_SHOOT= 152¶
-
FIRE_FLOWER_SHOOT_AIR= 153¶
-
ITEM_SCREW= 154¶
-
ITEM_SCREW_AIR= 155¶
-
DAMAGE_SCREW= 156¶
-
DAMAGE_SCREW_AIR= 157¶
-
ITEM_SCOPE_START= 158¶
-
ITEM_SCOPE_RAPID= 159¶
-
ITEM_SCOPE_FIRE= 160¶
-
ITEM_SCOPE_END= 161¶
-
ITEM_SCOPE_AIR_START= 162¶
-
ITEM_SCOPE_AIR_RAPID= 163¶
-
ITEM_SCOPE_AIR_FIRE= 164¶
-
ITEM_SCOPE_AIR_END= 165¶
-
ITEM_SCOPE_START_EMPTY= 166¶
-
ITEM_SCOPE_RAPID_EMPTY= 167¶
-
ITEM_SCOPE_FIRE_EMPTY= 168¶
-
ITEM_SCOPE_END_EMPTY= 169¶
-
ITEM_SCOPE_AIR_START_EMPTY= 170¶
-
ITEM_SCOPE_AIR_RAPID_EMPTY= 171¶
-
ITEM_SCOPE_AIR_FIRE_EMPTY= 172¶
-
ITEM_SCOPE_AIR_END_EMPTY= 173¶
-
LIFT_WAIT= 174¶
-
LIFT_WALK_1= 175¶
-
LIFT_WALK_2= 176¶
-
LIFT_TURN= 177¶
-
GUARD_ON= 178¶
-
GUARD= 179¶
-
GUARD_OFF= 180¶
-
GUARD_SET_OFF= 181¶
-
GUARD_REFLECT= 182¶
-
DOWN_BOUND_U= 183¶
-
DOWN_WAIT_U= 184¶
-
DOWN_DAMAGE_U= 185¶
-
DOWN_STAND_U= 186¶
-
DOWN_ATTACK_U= 187¶
-
DOWN_FOWARD_U= 188¶
-
DOWN_BACK_U= 189¶
-
DOWN_SPOT_U= 190¶
-
DOWN_BOUND_D= 191¶
-
DOWN_WAIT_D= 192¶
-
DOWN_DAMAGE_D= 193¶
-
DOWN_STAND_D= 194¶
-
DOWN_ATTACK_D= 195¶
-
DOWN_FOWARD_D= 196¶
-
DOWN_BACK_D= 197¶
-
DOWN_SPOT_D= 198¶
-
PASSIVE= 199¶
-
PASSIVE_STAND_F= 200¶
-
PASSIVE_STAND_B= 201¶
-
PASSIVE_WALL= 202¶
-
PASSIVE_WALL_JUMP= 203¶
-
PASSIVE_CEIL= 204¶
-
SHIELD_BREAK_FLY= 205¶
-
SHIELD_BREAK_FALL= 206¶
-
SHIELD_BREAK_DOWN_U= 207¶
-
SHIELD_BREAK_DOWN_D= 208¶
-
SHIELD_BREAK_STAND_U= 209¶
-
SHIELD_BREAK_STAND_D= 210¶
-
FURA_FURA= 211¶
-
CATCH= 212¶
-
CATCH_PULL= 213¶
-
CATCH_DASH= 214¶
-
CATCH_DASH_PULL= 215¶
-
CATCH_WAIT= 216¶
-
CATCH_ATTACK= 217¶
-
CATCH_CUT= 218¶
-
THROW_F= 219¶
-
THROW_B= 220¶
-
THROW_HI= 221¶
-
THROW_LW= 222¶
-
CAPTURE_PULLED_HI= 223¶
-
CAPTURE_WAIT_HI= 224¶
-
CAPTURE_DAMAGE_HI= 225¶
-
CAPTURE_PULLED_LW= 226¶
-
CAPTURE_WAIT_LW= 227¶
-
CAPTURE_DAMAGE_LW= 228¶
-
CAPTURE_CUT= 229¶
-
CAPTURE_JUMP= 230¶
-
CAPTURE_NECK= 231¶
-
CAPTURE_FOOT= 232¶
-
ESCAPE_F= 233¶
-
ESCAPE_B= 234¶
-
ESCAPE= 235¶
-
ESCAPE_AIR= 236¶
-
REBOUND_STOP= 237¶
-
REBOUND= 238¶
-
THROWN_F= 239¶
-
THROWN_B= 240¶
-
THROWN_HI= 241¶
-
THROWN_LW= 242¶
-
THROWN_LW_WOMEN= 243¶
-
PASS= 244¶
-
OTTOTTO= 245¶
-
OTTOTTO_WAIT= 246¶
-
FLY_REFLECT_WALL= 247¶
-
FLY_REFLECT_CEIL= 248¶
-
STOP_WALL= 249¶
-
STOP_CEIL= 250¶
-
MISS_FOOT= 251¶
-
CLIFF_CATCH= 252¶
-
CLIFF_WAIT= 253¶
-
CLIFF_CLIMB_SLOW= 254¶
-
CLIFF_CLIMB_QUICK= 255¶
-
CLIFF_ATTACK_SLOW= 256¶
-
CLIFF_ATTACK_QUICK= 257¶
-
CLIFF_ESCAPE_SLOW= 258¶
-
CLIFF_ESCAPE_QUICK= 259¶
-
CLIFF_JUMP_SLOW_1= 260¶
-
CLIFF_JUMP_SLOW_2= 261¶
-
CLIFF_JUMP_QUICK_1= 262¶
-
CLIFF_JUMP_QUICK_2= 263¶
-
APPEAL_R= 264¶
-
APPEAL_L= 265¶
-
SHOULDERED_WAIT= 266¶
-
SHOULDERED_WALK_SLOW= 267¶
-
SHOULDERED_WALK_MIDDLE= 268¶
-
SHOULDERED_WALK_FAST= 269¶
-
SHOULDERED_TURN= 270¶
-
THROWN_F_F= 271¶
-
THROWN_F_B= 272¶
-
THROWN_F_HI= 273¶
-
THROWN_F_LW= 274¶
-
CAPTURE_CAPTAIN= 275¶
-
CAPTURE_YOSHI= 276¶
-
YOSHI_EGG= 277¶
-
CAPTURE_KOOPA= 278¶
-
CAPTURE_DAMAGE_KOOPA= 279¶
-
CAPTURE_WAIT_KOOPA= 280¶
-
THROWN_KOOPA_F= 281¶
-
THROWN_KOOPA_B= 282¶
-
CAPTURE_KOOPA_AIR= 283¶
-
CAPTURE_DAMAGE_KOOPA_AIR= 284¶
-
CAPTURE_WAIT_KOOPA_AIR= 285¶
-
THROWN_KOOPA_AIR_F= 286¶
-
THROWN_KOOPA_AIR_B= 287¶
-
CAPTURE_KIRBY= 288¶
-
CAPTURE_WAIT_KIRBY= 289¶
-
THROWN_KIRBY_STAR= 290¶
-
THROWN_COPY_STAR= 291¶
-
THROWN_KIRBY= 292¶
-
BARREL_WAIT= 293¶
-
BURY= 294¶
-
BURY_WAIT= 295¶
-
BURY_JUMP= 296¶
-
DAMAGE_SONG= 297¶
-
DAMAGE_SONG_WAIT= 298¶
-
DAMAGE_SONG_RV= 299¶
-
DAMAGE_BIND= 300¶
-
CAPTURE_MEWTWO= 301¶
-
CAPTURE_MEWTWO_AIR= 302¶
-
THROWN_MEWTWO= 303¶
-
THROWN_MEWTWO_AIR= 304¶
-
WARP_STAR_JUMP= 305¶
-
WARP_STAR_FALL= 306¶
-
HAMMER_WAIT= 307¶
-
HAMMER_WALK= 308¶
-
HAMMER_TURN= 309¶
-
HAMMER_KNEE_BEND= 310¶
-
HAMMER_FALL= 311¶
-
HAMMER_JUMP= 312¶
-
HAMMER_LANDING= 313¶
-
KINOKO_GIANT_START= 314¶
-
KINOKO_GIANT_START_AIR= 315¶
-
KINOKO_GIANT_END= 316¶
-
KINOKO_GIANT_END_AIR= 317¶
-
KINOKO_SMALL_START= 318¶
-
KINOKO_SMALL_START_AIR= 319¶
-
KINOKO_SMALL_END= 320¶
-
KINOKO_SMALL_END_AIR= 321¶
-
ENTRY= 322¶
-
ENTRY_START= 323¶
-
ENTRY_END= 324¶
-
DAMAGE_ICE= 325¶
-
DAMAGE_ICE_JUMP= 326¶
-
CAPTURE_MASTER_HAND= 327¶
-
CAPTURE_DAMAGE_MASTER_HAND= 328¶
-
CAPTURE_WAIT_MASTER_HAND= 329¶
-
THROWN_MASTER_HAND= 330¶
-
CAPTURE_KIRBY_YOSHI= 331¶
-
KIRBY_YOSHI_EGG= 332¶
-
CAPTURE_REDEAD= 333¶
-
CAPTURE_LIKE_LIKE= 334¶
-
DOWN_REFLECT= 335¶
-
CAPTURE_CRAZY_HAND= 336¶
-
CAPTURE_DAMAGE_CRAZY_HAND= 337¶
-
CAPTURE_WAIT_CRAZY_HAND= 338¶
-
THROWN_CRAZY_HAND= 339¶
-
BARREL_CANNON_WAIT= 340¶
-
WAIT_1= 341¶
-
WAIT_2= 342¶
-
WAIT_3= 343¶
-
WAIT_4= 344¶
-
WAIT_ITEM= 345¶
-
SQUAT_WAIT_1= 346¶
-
SQUAT_WAIT_2= 347¶
-
SQUAT_WAIT_ITEM= 348¶
-
GUARD_DAMAGE= 349¶
-
ESCAPE_N= 350¶
-
ATTACK_S_4_HOLD= 351¶
-
HEAVY_WALK_1= 352¶
-
HEAVY_WALK_2= 353¶
-
ITEM_HAMMER_WAIT= 354¶
-
ITEM_HAMMER_MOVE= 355¶
-
ITEM_BLIND= 356¶
-
DAMAGE_ELEC= 357¶
-
FURA_SLEEP_START= 358¶
-
FURA_SLEEP_LOOP= 359¶
-
FURA_SLEEP_END= 360¶
-
WALL_DAMAGE= 361¶
-
CLIFF_WAIT_1= 362¶
-
CLIFF_WAIT_2= 363¶
-
SLIP_DOWN= 364¶
-
SLIP= 365¶
-
SLIP_TURN= 366¶
-
SLIP_DASH= 367¶
-
SLIP_WAIT= 368¶
-
SLIP_STAND= 369¶
-
SLIP_ATTACK= 370¶
-
SLIP_ESCAPE_F= 371¶
-
SLIP_ESCAPE_B= 372¶
-
APPEAL_S= 373¶
-
ZITABATA= 374¶
-
CAPTURE_KOOPA_HIT= 375¶
-
THROWN_KOOPA_END_F= 376¶
-
THROWN_KOOPA_END_B= 377¶
-
CAPTURE_KOOPA_AIR_HIT= 378¶
-
THROWN_KOOPA_AIR_END_F= 379¶
-
THROWN_KOOPA_AIR_END_B= 380¶
-
THROWN_KIRBY_DRINK_S_SHOT= 381¶
-
THROWN_KIRBY_SPIT_S_SHOT= 382¶
-
-
class
slippi.id.CSSCharacter¶ Bases:
slippi.util.IntEnumAn enumeration.
-
CAPTAIN_FALCON= 0¶
-
DONKEY_KONG= 1¶
-
FOX= 2¶
-
GAME_AND_WATCH= 3¶
-
KIRBY= 4¶
-
BOWSER= 5¶
-
LINK= 6¶
-
LUIGI= 7¶
-
MARIO= 8¶
-
MARTH= 9¶
-
MEWTWO= 10¶
-
NESS= 11¶
-
PEACH= 12¶
-
PIKACHU= 13¶
-
ICE_CLIMBERS= 14¶
-
JIGGLYPUFF= 15¶
-
SAMUS= 16¶
-
YOSHI= 17¶
-
ZELDA= 18¶
-
SHEIK= 19¶
-
FALCO= 20¶
-
YOUNG_LINK= 21¶
-
DR_MARIO= 22¶
-
ROY= 23¶
-
PICHU= 24¶
-
GANONDORF= 25¶
-
MASTER_HAND= 26¶
-
WIREFRAME_MALE= 27¶
-
WIREFRAME_FEMALE= 28¶
-
GIGA_BOWSER= 29¶
-
CRAZY_HAND= 30¶
-
SANDBAG= 31¶
-
POPO= 32¶
-
from_internal_id= <bound method CSSCharacter.from_internal_id of <enum 'CSSCharacter'>>¶
-
-
class
slippi.id.InGameCharacter¶ Bases:
slippi.util.IntEnumAn enumeration.
-
MARIO= 0¶
-
FOX= 1¶
-
CAPTAIN_FALCON= 2¶
-
DONKEY_KONG= 3¶
-
KIRBY= 4¶
-
BOWSER= 5¶
-
LINK= 6¶
-
SHEIK= 7¶
-
NESS= 8¶
-
PEACH= 9¶
-
POPO= 10¶
-
NANA= 11¶
-
PIKACHU= 12¶
-
SAMUS= 13¶
-
YOSHI= 14¶
-
JIGGLYPUFF= 15¶
-
MEWTWO= 16¶
-
LUIGI= 17¶
-
MARTH= 18¶
-
ZELDA= 19¶
-
YOUNG_LINK= 20¶
-
DR_MARIO= 21¶
-
FALCO= 22¶
-
PICHU= 23¶
-
GAME_AND_WATCH= 24¶
-
GANONDORF= 25¶
-
ROY= 26¶
-
MASTER_HAND= 27¶
-
CRAZY_HAND= 28¶
-
WIREFRAME_MALE= 29¶
-
WIREFRAME_FEMALE= 30¶
-
GIGA_BOWSER= 31¶
-
SANDBAG= 32¶
-
-
class
slippi.id.Stage¶ Bases:
slippi.util.IntEnumAn enumeration.
-
FOUNTAIN_OF_DREAMS= 2¶
-
POKEMON_STADIUM= 3¶
-
PRINCESS_PEACHS_CASTLE= 4¶
-
KONGO_JUNGLE= 5¶
-
BRINSTAR= 6¶
-
CORNERIA= 7¶
-
YOSHIS_STORY= 8¶
-
ONETT= 9¶
-
MUTE_CITY= 10¶
-
RAINBOW_CRUISE= 11¶
-
JUNGLE_JAPES= 12¶
-
GREAT_BAY= 13¶
-
HYRULE_TEMPLE= 14¶
-
BRINSTAR_DEPTHS= 15¶
-
YOSHIS_ISLAND= 16¶
-
GREEN_GREENS= 17¶
-
FOURSIDE= 18¶
-
MUSHROOM_KINGDOM_I= 19¶
-
MUSHROOM_KINGDOM_II= 20¶
-
VENOM= 22¶
-
POKE_FLOATS= 23¶
-
BIG_BLUE= 24¶
-
ICICLE_MOUNTAIN= 25¶
-
ICETOP= 26¶
-
FLAT_ZONE= 27¶
-
DREAM_LAND_N64= 28¶
-
YOSHIS_ISLAND_N64= 29¶
-
KONGO_JUNGLE_N64= 30¶
-
BATTLEFIELD= 31¶
-
FINAL_DESTINATION= 32¶
-
-
class
slippi.id.Item¶ Bases:
slippi.util.IntEnumAn enumeration.
-
CAPSULE= 0¶
-
BOX= 1¶
-
BARREL= 2¶
-
EGG= 3¶
-
PARTY_BALL= 4¶
-
BARREL_CANNON= 5¶
-
BOB_OMB= 6¶
-
MR_SATURN= 7¶
-
HEART_CONTAINER= 8¶
-
MAXIM_TOMATO= 9¶
-
STARMAN= 10¶
-
HOME_RUN_BAT= 11¶
-
BEAM_SWORD= 12¶
-
PARASOL= 13¶
-
GREEN_SHELL_1= 14¶
-
RED_SHELL_1= 15¶
-
RAY_GUN= 16¶
-
FREEZIE= 17¶
-
FOOD= 18¶
-
PROXIMITY_MINE= 19¶
-
FLIPPER= 20¶
-
SUPER_SCOPE= 21¶
-
STAR_ROD= 22¶
-
LIP_STICK= 23¶
-
FAN= 24¶
-
FIRE_FLOWER= 25¶
-
SUPER_MUSHROOM= 26¶
-
WARP_STAR= 29¶
-
SCREW_ATTACK= 30¶
-
BUNNY_HOOD= 31¶
-
METAL_BOX= 32¶
-
CLOAKING_DEVICE= 33¶
-
POKE_BALL= 34¶
-
RAY_GUN_RECOIL_EFFECT= 35¶
-
STAR_ROD_STAR= 36¶
-
LIP_STICK_DUST= 37¶
-
SUPER_SCOPE_BEAM= 38¶
-
RAY_GUN_BEAM= 39¶
-
HAMMER_HEAD= 40¶
-
FLOWER= 41¶
-
YOSHI_EGG_1= 42¶
-
GOOMBA= 43¶
-
REDEAD= 44¶
-
OCTAROK= 45¶
-
OTTOSEA= 46¶
-
STONE= 47¶
-
MARIO_FIRE= 48¶
-
DR_MARIO_PILL= 49¶
-
KIRBY_CUTTER_BEAM= 50¶
-
KIRBY_HAMMER= 51¶
-
FOX_LASER= 54¶
-
FALCO_LASER= 55¶
-
FOX_SHADOW= 56¶
-
FALCO_SHADOW= 57¶
-
LINK_BOMB= 58¶
-
YOUNG_LINK_BOMB= 59¶
-
LINK_BOOMERANG= 60¶
-
YOUNG_LINK_BOOMERANG= 61¶
-
LINK_HOOKSHOT= 62¶
-
YOUNG_LINK_HOOKSHOT= 63¶
-
LINK_ARROW_1= 64¶
-
YOUNG_LINK_FIRE_ARROW= 65¶
-
NESS_PK_FIRE= 66¶
-
NESS_PK_FLASH_1= 67¶
-
NESS_PK_FLASH_2= 68¶
-
NESS_PK_THUNDER_1= 69¶
-
NESS_PK_THUNDER_2= 70¶
-
NESS_PK_THUNDER_3= 71¶
-
NESS_PK_THUNDER_4= 72¶
-
NESS_PK_THUNDER_5= 73¶
-
FOX_BLASTER= 74¶
-
FALCO_BLASTER= 75¶
-
LINK_ARROW_2= 76¶
-
YOUNG_LINK_ARROW= 77¶
-
NESS_PK_FLASH_3= 78¶
-
SHEIK_NEEDLE_1= 79¶
-
SHEIK_NEEDLE_2= 80¶
-
PIKACHU_THUNDER_1= 81¶
-
PICHU_THUNDER_1= 82¶
-
MARIO_CAPE= 83¶
-
DR_MARIO_CAPE= 84¶
-
SHEIK_SMOKE= 85¶
-
YOSHI_EGG_2= 86¶
-
YOSHI_TONGUE_1= 87¶
-
YOSHI_STAR= 88¶
-
PIKACHU_THUNDER_2= 89¶
-
PIKACHU_THUNDER_3= 90¶
-
PICHU_THUNDER_2= 91¶
-
PICHU_THUNDER_3= 92¶
-
SAMUS_BOMB= 93¶
-
SAMUS_CHARGESHOT= 94¶
-
SAMUS_MISSILE= 95¶
-
SAMUS_GRAPPLE_BEAM= 96¶
-
SHEIK_CHAIN= 97¶
-
PEACH_TURNIP= 99¶
-
BOWSER_FLAME= 100¶
-
NESS_BAT= 101¶
-
NESS_YOYO= 102¶
-
PEACH_PARASOL= 103¶
-
PEACH_TOAD= 104¶
-
LUIGI_FIRE= 105¶
-
ICE_CLIMBERS_ICE= 106¶
-
ICE_CLIMBERS_BLIZZARD= 107¶
-
ZELDA_FIRE_1= 108¶
-
ZELDA_FIRE_2= 109¶
-
PEACH_TOAD_SPORE= 111¶
-
MEWTWO_SHADOWBALL= 112¶
-
ICE_CLIMBERS_UP_B= 113¶
-
GAME_AND_WATCH_PESTICIDE= 114¶
-
GAME_AND_WATCH_MANHOLE= 115¶
-
GAME_AND_WATCH_FIRE= 116¶
-
GAME_AND_WATCH_PARACHUTE= 117¶
-
GAME_AND_WATCH_TURTLE= 118¶
-
GAME_AND_WATCH_SPERKY= 119¶
-
GAME_AND_WATCH_JUDGE= 120¶
-
GAME_AND_WATCH_SAUSAGE= 122¶
-
GAME_AND_WATCH_MILK= 123¶
-
GAME_AND_WATCH_FIREFIGHTER= 124¶
-
MASTER_HAND_LASER= 125¶
-
MASTER_HAND_BULLET= 126¶
-
CRAZY_HAND_LASER= 127¶
-
CRAZY_HAND_BULLET= 128¶
-
CRAZY_HAND_BOMB= 129¶
-
KIRBY_COPY_MARIO_FIRE= 130¶
-
KIRBY_COPY_DR_MARIO_PILL= 131¶
-
KIRBY_COPY_LUIGI_FIRE= 132¶
-
KIRBY_COPY_ICE_CLIMBERS_ICE= 133¶
-
KIRBY_COPY_PEACH_TOAD= 134¶
-
KIRBY_COPY_TOAD_SPORE= 135¶
-
KIRBY_COPY_FOX_LASER= 136¶
-
KIRBY_COPY_FALCO_LASER= 137¶
-
KIRBY_COPY_FOX_BLASTER= 138¶
-
KIRBY_COPY_FALCO_BLASTER= 139¶
-
KIRBY_COPY_LINK_ARROW_1= 140¶
-
KIRBY_COPY_YOUNG_LINK_ARROW_1= 141¶
-
KIRBY_COPY_LINK_ARROW_2= 142¶
-
KIRBY_COPY_YOUNG_LINK_ARROW_2= 143¶
-
KIRBY_COPY_MEWTWO_SHADOWBALL= 144¶
-
KIRBY_COPY_PK_FLASH= 145¶
-
KIRBY_COPY_PK_FLASH_EXPLOSION= 146¶
-
KIRBY_COPY_PIKACHU_THUNDER_1= 147¶
-
KIRBY_COPY_PIKACHU_THUNDER_2= 148¶
-
KIRBY_COPY_PICHU_THUNDER_1= 149¶
-
KIRBY_COPY_PICHU_THUNDER_2= 150¶
-
KIRBY_COPY_SAMUS_CHARGESHOT= 151¶
-
KIRBY_COPY_SHEIK_NEEDLE_1= 152¶
-
KIRBY_COPY_SHEIK_NEEDLE_2= 153¶
-
KIRBY_COPY_BOWSER_FLAME= 154¶
-
KIRBY_COPY_GAME_AND_WATCH_SAUSAGE= 155¶
-
YOSHI_TONGUE_2= 157¶
-
MARIO_LUIGI_COIN= 159¶
-
RANDOM_POKEMON= 160¶
-
GOLDEEN= 161¶
-
CHICORITA= 162¶
-
SNORLAX= 163¶
-
BLASTOISE= 164¶
-
WEEZING= 165¶
-
CHARIZARD= 166¶
-
MOLTRES= 167¶
-
ZAPDOS= 168¶
-
ARTICUNO= 169¶
-
WOBBUFFET= 170¶
-
SCIZOR= 171¶
-
UNOWN= 172¶
-
ENTEI= 173¶
-
RAIKOU= 174¶
-
SUICUNE= 175¶
-
BELLOSSOM= 176¶
-
ELECTRODE= 177¶
-
LUGIA= 178¶
-
HO_OH= 179¶
-
DITTO= 180¶
-
CLEFAIRY= 181¶
-
TOGEPI= 182¶
-
MEW= 183¶
-
CELEBI= 184¶
-
STARYU= 185¶
-
CHANSEY= 186¶
-
PORYGON= 187¶
-
CYNDAQUIL= 188¶
-
MARILL= 189¶
-
VENUSAUR= 190¶
-
CHICORITA_LEAF= 191¶
-
BLASTOISE_WATER= 192¶
-
WEEZING_GAS_1= 193¶
-
WEEZING_GAS_2= 194¶
-
CHARIZARD_BREATH_1= 195¶
-
CHARIZARD_BREATH_2= 196¶
-
CHARIZARD_BREATH_3= 197¶
-
CHARIZARD_BREATH_4= 198¶
-
MINI_UNOWNS= 199¶
-
LUGIA_AEROBLAST_1= 200¶
-
LUGIA_AEROBLAST_2= 201¶
-
LUGIA_AEROBLAST_3= 202¶
-
HO_OH_FLAME= 203¶
-
STARYU_STAR= 204¶
-
HEALING_EGG= 205¶
-
CYNDAQUIL_FIRE= 206¶
-
OLD_GOOMBA= 208¶
-
TARGET= 209¶
-
SHYGUY= 210¶
-
KOOPA_1= 211¶
-
KOOPA_2= 212¶
-
LIKE_LIKE= 213¶
-
OLD_OTTOSEA= 216¶
-
WHITE_BEAR= 217¶
-
KLAP= 218¶
-
GREEN_SHELL_2= 219¶
-
RED_SHELL_2= 220¶
-
TINGLE= 221¶
-
APPLE= 225¶
-
HEALING_APPLE= 226¶
-
TOOL= 230¶
-
BIRDO= 233¶
-
ARWING_LASER= 234¶
-
GREAT_FOX_LASER= 235¶
-
BIRDO_EGG= 236¶
-
slippi.metadata module¶
-
class
slippi.metadata.Metadata(date, duration, platform, players, console_name=None)¶ Bases:
slippi.util.BaseMiscellaneous data not directly provided by Melee.
-
date¶ Game start date & time
Type: datetime
-
duration¶ Duration of game, in frames
Type: int
-
players¶ Player metadata by port (port 1 is at index 0; empty ports will contain None)
Type: tuple( Player| None)
-
console_name¶ Name of the console the game was played on, if any
Type: str | None
-
class
Player(characters, netplay=None)¶ Bases:
slippi.util.Base-
characters¶ Character(s) used, with usage duration in frames (for Zelda/Sheik)
Type: dict( slippi.id.InGameCharacter, int)
-
class
Netplay(code, name)¶ Bases:
slippi.util.Base-
code¶ Netplay code (e.g. “ABCD#123”)
Type: str
-
name¶ Netplay nickname
Type: str
-
-
-
slippi.parse module¶
-
class
slippi.parse.ParseEvent¶ Bases:
slippi.util.EnumParser events, used as keys for event handlers. Docstrings indicate the type of object that will be passed to each handler.
-
METADATA= 'metadata'¶ type:
slippi.metadata.Metadata
-
METADATA_RAW= 'metadata_raw'¶ type: dict
-
START= 'start'¶ type:
Start
-
FRAME= 'frame'¶ type:
Frame
-
END= 'end'¶ type:
End
-
FRAME_START= 'frame_start'¶ type:
Frame.Start
-
ITEM= 'item'¶ type:
Frame.Item
-
FRAME_END= 'frame_end'¶ type:
Frame.End
-
-
exception
slippi.parse.ParseError(message, name=None, pos=None)¶ Bases:
OSError
-
slippi.parse.parse(input, handlers)¶ Parses Slippi replay data from input (stream or path).
handlers should be a dict of
slippi.event.ParseEventkeys to handler functions. Each event will be passed to the corresponding handler as it occurs.
slippi.util module¶
-
slippi.util.try_enum(enum, val)¶
-
slippi.util.unpack(fmt, stream)¶
-
slippi.util.expect_bytes(expected_bytes, stream)¶
-
class
slippi.util.Base¶ Bases:
object
-
class
slippi.util.Enum¶ Bases:
enum.EnumAn enumeration.
-
class
slippi.util.IntEnum¶ Bases:
enum.IntEnumAn enumeration.
-
class
slippi.util.IntFlag¶ Bases:
enum.IntFlagAn enumeration.
-
exception
slippi.util.EOFError¶ Bases:
OSError