slippi package¶
Submodules¶
slippi.event module¶
-
class
slippi.event.
EventType
¶ Bases:
slippi.util.IntEnum
Slippi 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.Base
Information 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.Base
Information 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.IntEnum
An enumeration.
-
HUMAN
= 0¶
-
CPU
= 1¶
-
-
class
Team
¶ Bases:
slippi.util.IntEnum
An 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.IntEnum
An enumeration.
-
OFF
= 0¶
-
UCF
= 1¶
-
ARDUINO
= 2¶
-
-
class
ShieldDrop
¶ Bases:
slippi.util.IntEnum
An enumeration.
-
OFF
= 0¶
-
UCF
= 1¶
-
ARDUINO
= 2¶
-
-
-
-
-
class
slippi.event.
End
(method, lras_initiator=None)¶ Bases:
slippi.util.Base
Information 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.Base
A 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.Base
Frame data for a given port. Can include two characters’ frame data (ICs).
-
class
Data
¶ Bases:
slippi.util.Base
Frame 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.Base
Pre-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.Base
Post-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.Base
An 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.Base
Start-of-frame data.
-
random_seed
¶
-
-
class
End
¶ Bases:
slippi.util.Base
End-of-frame data.
-
class
Event
(id, type, data)¶ Bases:
slippi.util.Base
Temporary 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.IntEnum
An enumeration.
-
LEFT
= -1¶
-
RIGHT
= 1¶
-
-
class
slippi.event.
Attack
¶ Bases:
slippi.util.IntEnum
An 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.IntFlag
An 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.IntEnum
An enumeration.
-
SUCCESS
= 1¶
-
FAILURE
= 2¶
-
-
class
slippi.event.
StateFlags
¶ Bases:
slippi.util.IntFlag
An 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.Base
Replay 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.IntEnum
An 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.IntEnum
An 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.IntEnum
An 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.IntEnum
An 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.IntEnum
An 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.Base
Miscellaneous 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.Enum
Parser 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.ParseEvent
keys 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.Enum
An enumeration.
-
class
slippi.util.
IntEnum
¶ Bases:
enum.IntEnum
An enumeration.
-
class
slippi.util.
IntFlag
¶ Bases:
enum.IntFlag
An enumeration.
-
exception
slippi.util.
EOFError
¶ Bases:
OSError