Global constants#

Variables#

const Audio

Audio

const int

OP_TRANS

const int

OP_OPAQUE

const Debug

Debug

const int

MIN_FFC

const int

MAX_FFC

const FileSystem

FileSystem

const int

MAX_TIME

const Game

Game

const untyped

NULL

const untyped

null

const untyped

Null

const Graphics

Graphics

const Hero

Hero

const Hero

Link deprecated

const Hero

Player deprecated

const Input

Input

const rgb

INVALID_COLOR

const QR

qr_WEAPONS_EXTRA_FRAME

const randgen

RandGen

const Region

Region

const int

NUM_COMBO_POS

const Screen

Screen

const Text

Text

const Viewport

Viewport

const ZInfo

ZInfo

const ZInfo

Module deprecated

Enumerations#

enum Direction: 🔗 Source

Direction DIR_UP = 0

Direction DIR_DOWN = 1

Direction DIR_LEFT = 2

Direction DIR_RIGHT = 3

Direction DIR_LEFTUP = 4

Direction DIR_RIGHTUP = 5

Direction DIR_LEFTDOWN = 6

Direction DIR_RIGHTDOWN = 7

Direction DIR_UPLEFT = 4

Direction DIR_UPRIGHT = 5

Direction DIR_DOWNLEFT = 6

Direction DIR_DOWNRIGHT = 7


enum EnemyPattern: 🔗 Source

Enemy spawning patterns. Used with Screen->Pattern / mapdata::Pattern

EnemyPattern PATTERN_STANDARD = 0

Enemies spawn randomly among several pre-determined positions around the room

EnemyPattern PATTERN_SIDES = 1

Enemies spawn entering from the sides of the screen (evenly between each side)

EnemyPattern PATTERN_SIDES_RANDOM = 2

As PATTERN_SIDES, but enemies spawn randomly instead of evenly between each side

EnemyPattern PATTERN_CEILING = 3

As PATTERN_STANDARD, but the enemies fall from the ceiling when spawning

EnemyPattern PATTERN_CEILING_RANDOM = 4

As PATTERN_CEILING, but spawns completely randomly around the room

EnemyPattern PATTERN_STANDARD_RANDOM = 5

As PATTERN_STANDARD, but spawns completely randomly around the room

EnemyPattern PATTERN_NO_SPAWNING = 6

Enemies do not spawn (until the pattern is changed)


enum CounterIndex: 🔗 Source

Indices for generic counters. Used with itemdata::Counter, Game->Counter[], Game->MCounter[] and Game->DCounter[].

CounterIndex CR_NONE = -1

CounterIndex CR_LIFE = 0

CounterIndex CR_MONEY = 1

CounterIndex CR_RUPEES = 1

CounterIndex CR_BOMBS = 2

CounterIndex CR_ARROWS = 3

CounterIndex CR_MAGIC = 4

CounterIndex CR_KEYS = 5

CounterIndex CR_SBOMBS = 6

CounterIndex CR_CUSTOM1 = 7

CounterIndex CR_CUSTOM2 = 8

CounterIndex CR_CUSTOM3 = 9

CounterIndex CR_CUSTOM4 = 10

CounterIndex CR_CUSTOM5 = 11

CounterIndex CR_CUSTOM6 = 12

CounterIndex CR_CUSTOM7 = 13

CounterIndex CR_CUSTOM8 = 14

CounterIndex CR_CUSTOM9 = 15

CounterIndex CR_CUSTOM10 = 16

CounterIndex CR_CUSTOM11 = 17

CounterIndex CR_CUSTOM12 = 18

CounterIndex CR_CUSTOM13 = 19

CounterIndex CR_CUSTOM14 = 20

CounterIndex CR_CUSTOM15 = 21

CounterIndex CR_CUSTOM16 = 22

CounterIndex CR_CUSTOM17 = 23

CounterIndex CR_CUSTOM18 = 24

CounterIndex CR_CUSTOM19 = 25

CounterIndex CR_CUSTOM20 = 26

CounterIndex CR_CUSTOM21 = 27

CounterIndex CR_CUSTOM22 = 28

CounterIndex CR_CUSTOM23 = 29

CounterIndex CR_CUSTOM24 = 30

CounterIndex CR_CUSTOM25 = 31

CounterIndex CR_CUSTOM26 = 32

CounterIndex CR_CUSTOM27 = 33

CounterIndex CR_CUSTOM28 = 34

CounterIndex CR_CUSTOM29 = 35

CounterIndex CR_CUSTOM30 = 36

CounterIndex CR_CUSTOM31 = 37

CounterIndex CR_CUSTOM32 = 38

CounterIndex CR_CUSTOM33 = 39

CounterIndex CR_CUSTOM34 = 40

CounterIndex CR_CUSTOM35 = 41

CounterIndex CR_CUSTOM36 = 42

CounterIndex CR_CUSTOM37 = 43

CounterIndex CR_CUSTOM38 = 44

CounterIndex CR_CUSTOM39 = 45

CounterIndex CR_CUSTOM40 = 46

CounterIndex CR_CUSTOM41 = 47

CounterIndex CR_CUSTOM42 = 48

CounterIndex CR_CUSTOM43 = 49

CounterIndex CR_CUSTOM44 = 50

CounterIndex CR_CUSTOM45 = 51

CounterIndex CR_CUSTOM46 = 52

CounterIndex CR_CUSTOM47 = 53

CounterIndex CR_CUSTOM48 = 54

CounterIndex CR_CUSTOM49 = 55

CounterIndex CR_CUSTOM50 = 56

CounterIndex CR_CUSTOM51 = 57

CounterIndex CR_CUSTOM52 = 58

CounterIndex CR_CUSTOM53 = 59

CounterIndex CR_CUSTOM54 = 60

CounterIndex CR_CUSTOM55 = 61

CounterIndex CR_CUSTOM56 = 62

CounterIndex CR_CUSTOM57 = 63

CounterIndex CR_CUSTOM58 = 64

CounterIndex CR_CUSTOM59 = 65

CounterIndex CR_CUSTOM60 = 66

CounterIndex CR_CUSTOM61 = 67

CounterIndex CR_CUSTOM62 = 68

CounterIndex CR_CUSTOM63 = 69

CounterIndex CR_CUSTOM64 = 70

CounterIndex CR_CUSTOM65 = 71

CounterIndex CR_CUSTOM66 = 72

CounterIndex CR_CUSTOM67 = 73

CounterIndex CR_CUSTOM68 = 74

CounterIndex CR_CUSTOM69 = 75

CounterIndex CR_CUSTOM70 = 76

CounterIndex CR_CUSTOM71 = 77

CounterIndex CR_CUSTOM72 = 78

CounterIndex CR_CUSTOM73 = 79

CounterIndex CR_CUSTOM74 = 80

CounterIndex CR_CUSTOM75 = 81

CounterIndex CR_CUSTOM76 = 82

CounterIndex CR_CUSTOM77 = 83

CounterIndex CR_CUSTOM78 = 84

CounterIndex CR_CUSTOM79 = 85

CounterIndex CR_CUSTOM80 = 86

CounterIndex CR_CUSTOM81 = 87

CounterIndex CR_CUSTOM82 = 88

CounterIndex CR_CUSTOM83 = 89

CounterIndex CR_CUSTOM84 = 90

CounterIndex CR_CUSTOM85 = 91

CounterIndex CR_CUSTOM86 = 92

CounterIndex CR_CUSTOM87 = 93

CounterIndex CR_CUSTOM88 = 94

CounterIndex CR_CUSTOM89 = 95

CounterIndex CR_CUSTOM90 = 96

CounterIndex CR_CUSTOM91 = 97

CounterIndex CR_CUSTOM92 = 98

CounterIndex CR_CUSTOM93 = 99

CounterIndex CR_CUSTOM94 = 100

CounterIndex CR_CUSTOM95 = 101

CounterIndex CR_CUSTOM96 = 102

CounterIndex CR_CUSTOM97 = 103

CounterIndex CR_CUSTOM98 = 104

CounterIndex CR_CUSTOM99 = 105

CounterIndex CR_CUSTOM100 = 106

CounterIndex CR_SCRIPT1 = 7

CounterIndex CR_SCRIPT2 = 8

CounterIndex CR_SCRIPT3 = 9

CounterIndex CR_SCRIPT4 = 10

CounterIndex CR_SCRIPT5 = 11

CounterIndex CR_SCRIPT6 = 12

CounterIndex CR_SCRIPT7 = 13

CounterIndex CR_SCRIPT8 = 14

CounterIndex CR_SCRIPT9 = 15

CounterIndex CR_SCRIPT10 = 16

CounterIndex CR_SCRIPT11 = 17

CounterIndex CR_SCRIPT12 = 18

CounterIndex CR_SCRIPT13 = 19

CounterIndex CR_SCRIPT14 = 20

CounterIndex CR_SCRIPT15 = 21

CounterIndex CR_SCRIPT16 = 22

CounterIndex CR_SCRIPT17 = 23

CounterIndex CR_SCRIPT18 = 24

CounterIndex CR_SCRIPT19 = 25

CounterIndex CR_SCRIPT20 = 26

CounterIndex CR_SCRIPT21 = 27

CounterIndex CR_SCRIPT22 = 28

CounterIndex CR_SCRIPT23 = 29

CounterIndex CR_SCRIPT24 = 30

CounterIndex CR_SCRIPT25 = 31

CounterIndex CR_SCRIPT26 = 32

CounterIndex CR_SCRIPT27 = 33

CounterIndex CR_SCRIPT28 = 34

CounterIndex CR_SCRIPT29 = 35

CounterIndex CR_SCRIPT30 = 36

CounterIndex CR_SCRIPT31 = 37

CounterIndex CR_SCRIPT32 = 38

CounterIndex CR_SCRIPT33 = 39

CounterIndex CR_SCRIPT34 = 40

CounterIndex CR_SCRIPT35 = 41

CounterIndex CR_SCRIPT36 = 42

CounterIndex CR_SCRIPT37 = 43

CounterIndex CR_SCRIPT38 = 44

CounterIndex CR_SCRIPT39 = 45

CounterIndex CR_SCRIPT40 = 46

CounterIndex CR_SCRIPT41 = 47

CounterIndex CR_SCRIPT42 = 48

CounterIndex CR_SCRIPT43 = 49

CounterIndex CR_SCRIPT44 = 50

CounterIndex CR_SCRIPT45 = 51

CounterIndex CR_SCRIPT46 = 52

CounterIndex CR_SCRIPT47 = 53

CounterIndex CR_SCRIPT48 = 54

CounterIndex CR_SCRIPT49 = 55

CounterIndex CR_SCRIPT50 = 56

CounterIndex CR_SCRIPT51 = 57

CounterIndex CR_SCRIPT52 = 58

CounterIndex CR_SCRIPT53 = 59

CounterIndex CR_SCRIPT54 = 60

CounterIndex CR_SCRIPT55 = 61

CounterIndex CR_SCRIPT56 = 62

CounterIndex CR_SCRIPT57 = 63

CounterIndex CR_SCRIPT58 = 64

CounterIndex CR_SCRIPT59 = 65

CounterIndex CR_SCRIPT60 = 66

CounterIndex CR_SCRIPT61 = 67

CounterIndex CR_SCRIPT62 = 68

CounterIndex CR_SCRIPT63 = 69

CounterIndex CR_SCRIPT64 = 70

CounterIndex CR_SCRIPT65 = 71

CounterIndex CR_SCRIPT66 = 72

CounterIndex CR_SCRIPT67 = 73

CounterIndex CR_SCRIPT68 = 74

CounterIndex CR_SCRIPT69 = 75

CounterIndex CR_SCRIPT70 = 76

CounterIndex CR_SCRIPT71 = 77

CounterIndex CR_SCRIPT72 = 78

CounterIndex CR_SCRIPT73 = 79

CounterIndex CR_SCRIPT74 = 80

CounterIndex CR_SCRIPT75 = 81

CounterIndex CR_SCRIPT76 = 82

CounterIndex CR_SCRIPT77 = 83

CounterIndex CR_SCRIPT78 = 84

CounterIndex CR_SCRIPT79 = 85

CounterIndex CR_SCRIPT80 = 86

CounterIndex CR_SCRIPT81 = 87

CounterIndex CR_SCRIPT82 = 88

CounterIndex CR_SCRIPT83 = 89

CounterIndex CR_SCRIPT84 = 90

CounterIndex CR_SCRIPT85 = 91

CounterIndex CR_SCRIPT86 = 92

CounterIndex CR_SCRIPT87 = 93

CounterIndex CR_SCRIPT88 = 94

CounterIndex CR_SCRIPT89 = 95

CounterIndex CR_SCRIPT90 = 96

CounterIndex CR_SCRIPT91 = 97

CounterIndex CR_SCRIPT92 = 98

CounterIndex CR_SCRIPT93 = 99

CounterIndex CR_SCRIPT94 = 100

CounterIndex CR_SCRIPT95 = 101

CounterIndex CR_SCRIPT96 = 102

CounterIndex CR_SCRIPT97 = 103

CounterIndex CR_SCRIPT98 = 104

CounterIndex CR_SCRIPT99 = 105

CounterIndex CR_SCRIPT100 = 106

CounterIndex CR_MAX = 107


enum SwitchEffect: 🔗 Source

SwitchEffect SW_EFF_POOF = 0

SwitchEffect SW_EFF_FLICKER = 1

SwitchEffect SW_EFF_RISE = 2


enum WarpType: 🔗 Source

Used with Screen->SetSideWarp() and Hero->WarpEx()

WarpType WT_CAVE = 0

WarpType WT_PASSAGE = 1

WarpType WT_ENTRANCEEXIT = 2

WarpType WT_SCROLLING = 3

WarpType WT_IWARP = 4

WarpType WT_IWARPBLACKOUT = 5

WarpType WT_IWARPOPENWIPE = 6

WarpType WT_IWARPZAP = 7

WarpType WT_IWARPWAVE = 8

WarpType WT_NOWARP = 9


enum WeaponFlag: 🔗 Source

WeaponFlag WFLAG_PICKUP_ITEMS = 0

WeaponFlag WFLAG_BREAKS_ON_LANDING = 1

WeaponFlag WFLAG_BREAKS_ON_SOLID = 2

WeaponFlag WFLAG_BURN_ANYFIRE = 3

WeaponFlag WFLAG_BURN_STRONGFIRE = 4

WeaponFlag WFLAG_BURN_MAGICFIRE = 5

WeaponFlag WFLAG_BURN_DIVINEFIRE = 6

WeaponFlag WFLAG_STOP_ON_LANDING = 7

WeaponFlag WFLAG_STOP_ON_SOLID = 8

WeaponFlag WFLAG_UPDATE_BURNSPR = 9

WeaponFlag WFLAG_NO_COLL_WHEN_STILL = 10

WeaponFlag WFLAG_MAX = 11


enum WeaponSpriteIndex: 🔗 Source

WeaponSpriteIndex WPN_SPRITE_BASE = 0

WeaponSpriteIndex WPN_SPRITE_BURN_ANY = 1

WeaponSpriteIndex WPN_SPRITE_BURN_STRONG = 2

WeaponSpriteIndex WPN_SPRITE_BURN_MAGIC = 3

WeaponSpriteIndex WPN_SPRITE_BURN_DIVINE = 4

WeaponSpriteIndex WPN_SPRITE_MAX = 5


enum ShadowType: 🔗 Source

ShadowType SHD_NORMAL = 0

No Shadow

ShadowType SHD_SHADOW = 1

These draw ONLY a shadow, no actual text

ShadowType SHD_SHADOWU = 2

ShadowType SHD_OUTLINE8 = 3

ShadowType SHD_OUTLINEPLUS = 4

ShadowType SHD_OUTLINEX = 5

ShadowType SHD_SHADOWED = 6

These draw a shadow behind the actual text

ShadowType SHD_SHADOWEDU = 7

ShadowType SHD_OUTLINED8 = 8

ShadowType SHD_OUTLINEDPLUS = 9

ShadowType SHD_OUTLINEDX = 10

ShadowType SHD_MAX = 11

Max number; not an actual value to use


enum DrawStyle: 🔗 Source

DrawStyle DS_NORMAL = 0

DrawStyle DS_PHANTOM = 1

DrawStyle DS_CLOAKED = 2


enum TransformationType: 🔗 Source

TransformationType FLIP_NONE = 0

TransformationType FLIP_HORIZONTAL = 1

TransformationType FLIP_VERTICAL = 2

TransformationType FLIP_HV = 3

Horizontal and vertical

TransformationType FLIP_VH = 3

Horizontal and vertical

TransformationType FLIP_BOTH = 3

Horizontal and vertical

TransformationType ROT_CW = 4

Rotations + Flip

TransformationType ROT_CW_FLIP = 5

TransformationType ROT_CCW_FLIP = 6

TransformationType ROT_CCW = 7

TransformationType ROT_ACW_FLIP = 6

Anticlockwise

TransformationType ROT_ACW = 7


enum ComboType: 🔗 Source

ComboType CT_NONE = 0

ComboType CT_STAIR = 1

ComboType CT_CAVE = 2

ComboType CT_WATER = 3

ComboType CT_ARMOS = 4

ComboType CT_GRAVE = 5

ComboType CT_DOCK = 6

ComboType CT_PUSHWAIT = 8

ComboType CT_PUSHHEAVY = 9

ComboType CT_PUSHHEAVYWAIT = 10

ComboType CT_LEFTSTATUE = 11

ComboType CT_RIGHTSTATUE = 12

ComboType CT_WALKSLOW = 13

ComboType CT_CVUP = 14

ComboType CT_CVDOWN = 15

ComboType CT_CVLEFT = 16

ComboType CT_CVRIGHT = 17

ComboType CT_SWIMWARP = 18

ComboType CT_DIVEWARP = 19

ComboType CT_LADDERHOOKSHOT = 20

ComboType CT_TRIGNOFLAG = 21

ComboType CT_TRIGFLAG = 22

ComboType CT_ZELDA = 23

ComboType CT_SLASH = 24

ComboType CT_SLASHITEM = 25

ComboType CT_PUSHHEAVY2 = 26

ComboType CT_PUSHHEAVY2WAIT = 27

ComboType CT_POUND = 28

ComboType CT_HSGRAB = 29

ComboType CT_HSBRIDGE = 30

ComboType CT_DAMAGE1 = 31

ComboType CT_DAMAGE2 = 32

ComboType CT_DAMAGE3 = 33

ComboType CT_DAMAGE4 = 34

ComboType CT_CENTRESTATUE = 35

ComboType CT_TRAPH = 36

ComboType CT_TRAPV = 37

ComboType CT_TRAP4WAY = 38

ComboType CT_TRAPLEFTRIGHT = 39

ComboType CT_TRAPUPDOWN = 40

ComboType CT_PIT = 41

ComboType CT_HOOKSHOTONLY = 42

ComboType CT_OVERHEAD = 43

ComboType CT_NOFLYZONE = 44

ComboType CT_MIRROR = 45

ComboType CT_MIRRORSLASH = 46

ComboType CT_MIRRORBACKSLASH = 47

ComboType CT_MAGICPRISM = 48

ComboType CT_MAGICPRISM4WAY = 49

ComboType CT_BLOCKMAGIC = 50

ComboType CT_CAVE2 = 51

ComboType CT_EYEBALLA = 52

ComboType CT_EYEBALLB = 53

ComboType CT_NOJUMPZONE = 54

ComboType CT_BUSH = 55

ComboType CT_FLOWERS = 56

ComboType CT_TALLGRASS = 57

ComboType CT_SHALLOWWATER = 58

ComboType CT_LOCKBLOCK = 59

ComboType CT_LOCKBLOCK2 = 60

ComboType CT_BOSSLOCKBLOCK = 61

ComboType CT_BOSSLOCKBLOCK2 = 62

ComboType CT_LADDERONLY = 63

ComboType CT_BSGRAVE = 64

ComboType CT_CHEST = 65

ComboType CT_CHEST2 = 66

ComboType CT_LOCKEDCHEST = 67

ComboType CT_LOCKEDCHEST2 = 68

ComboType CT_BOSSCHEST = 69

ComboType CT_BOSSCHEST2 = 70

ComboType CT_RESET = 71

ComboType CT_SAVE = 72

ComboType CT_SAVE2 = 73

ComboType CT_CAVEB = 74

ComboType CT_CAVEC = 75

ComboType CT_CAVED = 76

ComboType CT_STAIRB = 77

ComboType CT_STAIRC = 78

ComboType CT_STAIRD = 79

ComboType CT_PITB = 80

ComboType CT_PITC = 81

ComboType CT_PITD = 82

ComboType CT_CAVE2B = 83

ComboType CT_CAVE2C = 84

ComboType CT_CAVE2D = 85

ComboType CT_SWIMWARPB = 86

ComboType CT_SWIMWARPC = 87

ComboType CT_SWIMWARPD = 88

ComboType CT_DIVEWARPB = 89

ComboType CT_DIVEWARPC = 90

ComboType CT_DIVEWARPD = 91

ComboType CT_STAIRR = 92

ComboType CT_PITR = 93

ComboType CT_AWARPA = 94

ComboType CT_AWARPB = 95

ComboType CT_AWARPC = 96

ComboType CT_AWARPD = 97

ComboType CT_AWARPR = 98

ComboType CT_SWARPA = 99

ComboType CT_SWARPB = 100

ComboType CT_SWARPC = 101

ComboType CT_SWARPD = 102

ComboType CT_SWARPR = 103

ComboType CT_STRIGNOFLAG = 104

ComboType CT_STRIGFLAG = 105

ComboType CT_STEP = 106

ComboType CT_STEPSAME = 107

ComboType CT_STEPALL = 108

ComboType CT_STEPCOPY = 109

ComboType CT_NOENEMY = 110

ComboType CT_BLOCKARROW1 = 111

ComboType CT_BLOCKARROW2 = 112

ComboType CT_BLOCKARROW3 = 113

ComboType CT_BLOCKBRANG1 = 114

ComboType CT_BLOCKBRANG2 = 115

ComboType CT_BLOCKBRANG3 = 116

ComboType CT_BLOCKSWORDBEAM = 117

ComboType CT_BLOCKALL = 118

ComboType CT_BLOCKFIREBALL = 119

ComboType CT_DAMAGE5 = 120

ComboType CT_DAMAGE6 = 121

ComboType CT_DAMAGE7 = 122

ComboType CT_SPINTILE1 = 124

ComboType CT_SPINTILE2 = 125

ComboType CT_SCREENFREEZE = 126

ComboType CT_SCREENFREEZEFF = 127

ComboType CT_NOGROUNDENEMY = 128

ComboType CT_SLASHNEXT = 129

ComboType CT_SLASHNEXTITEM = 130

ComboType CT_BUSHNEXT = 131

ComboType CT_SLASHC = 132

ComboType CT_SLASHITEMC = 133

ComboType CT_BUSHC = 134

ComboType CT_FLOWERSC = 135

ComboType CT_TALLGRASSC = 136

ComboType CT_SLASHNEXTC = 137

ComboType CT_SLASHNEXTITEMC = 138

ComboType CT_BUSHNEXTC = 139

ComboType CT_EYEBALL4WAY = 140

ComboType CT_TALLGRASSNEXT = 141

ComboType CT_SCRIPT1 = 142

ComboType CT_SCRIPT2 = 143

ComboType CT_SCRIPT3 = 144

ComboType CT_SCRIPT4 = 145

ComboType CT_SCRIPT5 = 146

ComboType CT_SCRIPT6 = 147

ComboType CT_SCRIPT7 = 148

ComboType CT_SCRIPT8 = 149

ComboType CT_SCRIPT9 = 150

ComboType CT_SCRIPT10 = 151

ComboType CT_SCRIPT11 = 152

ComboType CT_SCRIPT12 = 153

ComboType CT_SCRIPT13 = 154

ComboType CT_SCRIPT14 = 155

ComboType CT_SCRIPT15 = 156

ComboType CT_SCRIPT16 = 157

ComboType CT_SCRIPT17 = 158

ComboType CT_SCRIPT18 = 159

ComboType CT_SCRIPT19 = 160

ComboType CT_SCRIPT20 = 161

ComboType CT_GENERIC = 162

ComboType CT_PITFALL = 163

ComboType CT_STEPFX = 164

ComboType CT_BRIDGE = 165

ComboType CT_SIGNPOST = 166

ComboType CT_SWITCH = 167

ComboType CT_SWITCHBLOCK = 168

ComboType CT_LANTERN = 169

ComboType CT_SPOTLIGHT = 170

ComboType CT_GLASS = 171

ComboType CT_LIGHT_TARGET = 172

ComboType CT_SWITCHHOOK_BLOCK = 173

ComboType CT_CUSTOM_BLOCKER = 174

ComboType CT_SHOOTER = 175

ComboType CT_MAX = 176


enum TileWarpIndex: 🔗 Source

TileWarpIndex TILEWARP_A = 0

TileWarpIndex TILEWARP_B = 1

TileWarpIndex TILEWARP_C = 2

TileWarpIndex TILEWARP_D = 3


enum SideWarpIndex: 🔗 Source

SideWarpIndex SIDEWARP_NONE = -1

SideWarpIndex SIDEWARP_A = 0

SideWarpIndex SIDEWARP_B = 1

SideWarpIndex SIDEWARP_C = 2

SideWarpIndex SIDEWARP_D = 3


enum WarpIndex: 🔗 Source

WarpIndex WARP_NONE = -1

WarpIndex WARP_A = 0

WarpIndex WARP_B = 1

WarpIndex WARP_C = 2

WarpIndex WARP_D = 3


enum SpriteID: 🔗 Source

Used with eweapon::UseSprite(), lweapon::UseSprite(), and portal::UseSprite().

SpriteID SP_ARROW_ENEMY = 19

SpriteID SP_ARROW1 = 10

Wooden Arrow.

SpriteID SP_ARROW2 = 11

Silver Arrow.

SpriteID SP_ARROW3 = 34

Golden Arrow.

SpriteID SP_BAIT = 14

Enemy bait.

SpriteID SP_BOMB_ENEMY = 76

Bomb (Enemy, normal).

SpriteID SP_SBOMB_ENEMY = 77

Bomb (Enemy, Super).

SpriteID SP_BOMB = 7

Normal Bomb.

SpriteID SP_SBOMB = 8

Super Bomb.

SpriteID SP_BRANG1 = 4

Wooden Boomerang.

SpriteID SP_BRANG2 = 5

Magical Boomerang.

SpriteID SP_BRANG3 = 6

Fire Boomerang.

SpriteID SP_CANEOFBYRNA = 69

Cane of Byrna Object.

SpriteID SP_BYRNABEAM = 87

Cane of Byrna Orbiter.

SpriteID SP_BYRNASLASH = 70

Cane of Byrna Slashing Sprite.

SpriteID SP_DINSFIRE_FALL = 39

Din’s Fire (Falling).

SpriteID SP_DINSFIRE_RISE = 38

Din’s Fire (Rising).

SpriteID SP_DINSFIRE_TRAIL_FALL = 41

Din’s Fire (Trail, Falling).

SpriteID SP_DINSFIRE_TRAIL_RISE = 40

Din’s Fire (Trail, Rising).

SpriteID SP_BOMB_ENEMY_EXPLOSION = 78

Normal Bomb Exploion (Enemy).

SpriteID SP_SBOMB_ENEMY_EXPLOSION = 79

Super Bomb Explosion (Enemy).

SpriteID SP_BOMB_EXPLOSION = 9

Normal Bomb Explosion.

SpriteID SP_SBOMB_EXPLOSION = 75

Super Bomb Explosion.

SpriteID SP_FIRE_ENEMY = 35

Fire (Enemy).

SpriteID SP_FIRE2_ENEMY = 81

Fire 2 (Enemy).

SpriteID SP_FIRETRAIL2 = 82

Fire Trail 2 (Enemy). Unused.

SpriteID SP_FIRETRAIL = 80

Fire Trail (Enemy).

SpriteID SP_FIREBALL = 17

Fireball (Enemy).

SpriteID SP_FLAME = 12

Candle Fire.

SpriteID SP_FIRE = 12

Candle Fire.

SpriteID SP_HAMMER = 25

Hammer.

SpriteID SP_HOOKSHOT1_CHAIN_H = 27

Hookshot (Short, Chain, Horizontal).

SpriteID SP_HOOKSHOT1_CHAIN_V = 42

Hookshot (Short, Chain, Vertical).

SpriteID SP_HOOKSHOT1_HANDLE = 28

Hookshot Handle (Short).

SpriteID SP_HOOKSHOT1_HEAD = 26

Hookshot Head (Short).

SpriteID SP_HOOKSHOT2_CHAIN_H = 72

Hookshot (Short, Chain, Horizontal).

SpriteID SP_HOOKSHOT2_CHAIN_V = 74

Hookshot (Short, Chain, Vertical).

SpriteID SP_HOOKSHOT2_HANDLE = 73

Hookshot Handle (Short).

SpriteID SP_HOOKSHOT2_HEAD = 71

Hookshot Head (Short).

SpriteID SP_ICE = 83

Ice Magic (Enemy, Unused).

SpriteID SP_MAGIC_ENEMY = 21

Magic (Enemy).

SpriteID SP_MAGIC_FIRE = 85

Magic (Fire).

SpriteID SP_MAGIC = 16

Magic (Wand).

SpriteID SP_MISC44 = 44

Misc 44, unused.

SpriteID SP_MISC45 = 45

Misc 45, unused.

SpriteID SP_MISC57 = 57

Misc 57, unused.

SpriteID SP_MISC24 = 24

Misc 24, unused.

SpriteID SP_MISC_ARROW2 = 29

Silver Arrow Sparkles.

SpriteID SP_MISC_ARROW3 = 30

Golden Arrow Sparkles.

SpriteID SP_MISC_BRANG2 = 31

Magic Boomerang Sparkles.

SpriteID SP_MISC_BRANG3 = 32

Fire Boomerang Sparkles.

SpriteID SP_MISC_BUSH = 52

Bush Leaf Clippings.

SpriteID SP_MISC_DEATH = 23

Link Death Winkout.

SpriteID SP_MISC_FLOWER = 53

Flower Clippings.

SpriteID SP_MISC_GRASS = 54

Grass Clippings.

SpriteID SP_MISC_HAMMER = 33

Hammer Impact.

SpriteID SP_MISC_HOVER = 84

Hover Boots Glow.

SpriteID SP_MISC_MAGICMETER = 37

Magic Meter.

SpriteID SP_MISC_MORE = 43

More Indicator.

SpriteID SP_MISC_QHEART = 86

Quarter Heart.

SpriteID SP_MISC_RIPPLE = 56

Ripples.

SpriteID SP_MISC_SHADOW2 = 51

Shadow (Large).

SpriteID SP_MISC_SHADOW1 = 50

Shadow (Small).

SpriteID SP_SPAWN = 22

Enemy Spawn Poof.

SpriteID SP_MISC_SSVINE = 68

Subscreen Vine.

SpriteID SP_TALLGRASS = 55

Tall Grass Movement.

SpriteID SP_NAYRU_LEFT = 58

Nayru’s Love (Left).

SpriteID SP_NAYRU_LEFT2 = 59

Nayru’s Love (Left, Returning).

SpriteID SP_NAYRU_RIGHT = 62

Nayru’s Love (Right).

SpriteID SP_NAYRU_RIGHT2 = 63

Nayru’s Love (Right, Returning).

SpriteID SP_NAYRU_BACK = 67

Nayru’s Love Shield (Back).

SpriteID SP_NAYRU_FRONT = 66

Nayru’s Love Shield (Front).

SpriteID SP_NAYRU_TRAIL_LEFT = 60

Nayru’s Love Trail (Left).

SpriteID SP_NAYRU_TRAIL_LEFT2 = 61

Nayru’s Love Trail (Left, Returning).

SpriteID SP_NAYRU_TRAIL_RIGHT = 64

Nayru’s Love Trail (Right).

SpriteID SP_NAYRU_TRAIL_RIGHT2 = 65

Nayru’s Love Trail (Right, Returning).

SpriteID SP_ROCK = 18

Rock.

SpriteID SP_SWORD_ENEMY = 20

Enemy Sword Beam.

SpriteID SP_SWORD1 = 0

Wooden Sword.

SpriteID SP_SLASH1 = 46

Wooden Sword Slash.

SpriteID SP_SWORD2 = 1

White Sword.

SpriteID SP_SLASH2 = 47

White Sword Slash.

SpriteID SP_SWORD3 = 2

Magical Sword.

SpriteID SP_SLASH3 = 48

Magical Sword Slash.

SpriteID SP_SWORD4 = 3

Master Sword.

SpriteID SP_SLASH4 = 49

Master Sword Slash.

SpriteID SP_WAND = 15

Wand Object.

SpriteID SP_WHIRL = 13

Whiste Whirlwind.

SpriteID SP_WIND = 36

Wind Magic (Enemy).


enum FontType: 🔗 Source

Font types. Used with Screen->DrawCharacter(), Screen->DrawString(), bitmap::DrawString(), etc. Some of these fonts may not represent normal ascii characters, and all of these are completely undocumented. Use at your own peril.

FontType FONT_Z1 = 0

FontType FONT_Z3 = 1

FontType FONT_Z3SMALL = 2

FontType FONT_DEF = 3

FontType FONT_L = 4

FontType FONT_L2 = 5

FontType FONT_P = 6

FontType FONT_MATRIX = 7

FontType FONT_ZTIME = 8

FontType FONT_S = 9

FontType FONT_S2 = 10

FontType FONT_SP = 11

FontType FONT_SUBSCREEN1 = 12

FontType FONT_SUBSCREEN2 = 13

FontType FONT_SUBSCREEN3 = 14

FontType FONT_SUBSCREEN4 = 15

FontType FONT_GBLA = 16

FontType FONT_LA = 16

FontType FONT_GORON = 17

FontType FONT_ZORAN = 18

FontType FONT_HYLIAN1 = 19

FontType FONT_HYLIAN2 = 20

FontType FONT_HYLIAN3 = 21

FontType FONT_HYLIAN4 = 22

FontType FONT_GBORACLE = 23

FontType FONT_GBORACLEP = 24

FontType FONT_DSPHANTOM = 25

FontType FONT_DSPHANTOMP = 26

FontType FONT_ATARI800 = 27

FontType FONT_ACORN = 28

FontType FONT_ADOS = 29

FontType FONT_ALLEGRO = 30

FontType FONT_APPLE2 = 31

FontType FONT_APPLE2_80COL = 32

FontType FONT_APPLE2GS = 33

FontType FONT_AQUARIUS = 34

FontType FONT_ATARI400 = 35

FontType FONT_C64 = 36

FontType FONT_C64_HIRES = 37

FontType FONT_CGA = 38

FontType FONT_COCO = 39

Invrse chars for upper.

FontType FONT_COCO2 = 40

Upper and lower.

FontType FONT_COUPE = 41

FontType FONT_CPC = 42

Amstrad.

FontType FONT_FANTASY = 43

FontType FONT_FDS_KANA = 44

FontType FONT_FDSLIKE = 45

FontType FONT_FDS_ROMAN = 46

FontType FONT_FF = 47

Final Fantasy.

FontType FONT_FUTHARK = 48

Runes.

FontType FONT_GAIA = 49

FontType FONT_HIRA = 50

FontType FONT_JP = 51

FontType FONT_KONG = 52

FontType FONT_MANA = 53

FontType FONT_MARIOLAND = 54

FontType FONT_MOT = 55

Motorola.

FontType FONT_MSX0 = 56

MSX, Mode 0.

FontType FONT_MSX1 = 57

MSX, Mod 1.

FontType FONT_PET = 58

FontType FONT_PSTART = 59

Nintendo-esque.

FontType FONT_SATURN = 60

Mr. Saturn.

FontType FONT_SCIFI = 61

FontType FONT_SHERWOOD = 62

FontType FONT_SINQL = 63

Sinclair QL.

FontType FONT_SPECTRUM = 64

FontType FONT_SPECTRUM_LG = 65

FontType FONT_TI99 = 66

FontType FONT_TRS = 67

FontType FONT_Z2 = 68

Zelda 2 plus custom lowercase.

FontType FONT_ZX = 69

FontType FONT_LISA = 70

Lisa OS System Font.

FontType FONT_NFONT = 71

FontType FONT_S3 = 72

FontType FONT_CV3 = 73

FontType FONT_CHRONO = 74

FontType FONT_NFONT2 = 75

FontType FONT_BAK = 76

FontType FONT_GUNSTAR = 77

FontType FONT_SMW_CREDITS = 78

FontType FONT_WL4 = 79

FontType FONT_BSZ = 80

FontType FONT_BSZ_PROP = 81

FontType FONT_FF6 = 82

FontType FONT_EVO_EDEN = 83

FontType FONT_SMT = 84

FontType FONT_ACTRAISER = 85

FontType FONT_BAK_RUNES = 86

FontType FONT_BAK_SMALL = 87

FontType FONT_DISORIENT = 88

FontType FONT_DOOM = 89

FontType FONT_DRACULA = 90

FontType FONT_EJIM = 91

FontType FONT_FALLOUT = 92

FontType FONT_GRADIUS = 93

FontType FONT_LAMU_MSX = 94

FontType FONT_MEGAMAN = 95

FontType FONT_WINGDINGS = 96

FontType FONT_PKMN2 = 97

FontType FONT_SMRPG = 98

FontType FONT_UNDERTALE = 99

FontType FONT_SMW = 100


enum TextAlignment: 🔗 Source

Text alignment. Used with Screen->DrawString() and other functions.

TextAlignment TF_NORMAL = 0

Treats the left-most char as (x).

TextAlignment TF_CENTERED = 1

Prints the string centered on (x).

TextAlignment TF_RIGHT = 2

Treats the right-most char as (x).


enum ComboFlag: 🔗 Source

Combo flags. Used with Screen->ComboF[].

ComboFlag CF_NONE = 0

ComboFlag CF_PUSHUPDOWN = 1

ComboFlag CF_PUSH4WAY = 2

ComboFlag CF_WHISTLE = 3

ComboFlag CF_CANDLE1 = 4

ComboFlag CF_ARROW = 5

ComboFlag CF_BOMB = 6

ComboFlag CF_FAIRY = 7

ComboFlag CF_RAFT = 8

ComboFlag CF_ARMOSSECRET = 9

ComboFlag CF_ARMOSITEM = 10

ComboFlag CF_SBOMB = 11

ComboFlag CF_RAFTBRANCH = 12

ComboFlag CF_DIVEITEM = 13

ComboFlag CF_LENSMARKER = 14

ComboFlag CF_ZELDA = 15

ComboFlag CF_SECRETS01 = 16

ComboFlag CF_SECRETS02 = 17

ComboFlag CF_SECRETS03 = 18

ComboFlag CF_SECRETS04 = 19

ComboFlag CF_SECRETS05 = 20

ComboFlag CF_SECRETS06 = 21

ComboFlag CF_SECRETS07 = 22

ComboFlag CF_SECRETS08 = 23

ComboFlag CF_SECRETS09 = 24

ComboFlag CF_SECRETS10 = 25

ComboFlag CF_SECRETS11 = 26

ComboFlag CF_SECRETS12 = 27

ComboFlag CF_SECRETS13 = 28

ComboFlag CF_SECRETS14 = 29

ComboFlag CF_SECRETS15 = 30

ComboFlag CF_SECRETS16 = 31

ComboFlag CF_TRAPH = 32

ComboFlag CF_TRAPV = 33

ComboFlag CF_TRAP4WAY = 34

ComboFlag CF_TRAPLR = 35

ComboFlag CF_TRAPUD = 36

ComboFlag CF_ENEMY0 = 37

ComboFlag CF_ENEMY1 = 38

ComboFlag CF_ENEMY2 = 39

ComboFlag CF_ENEMY3 = 40

ComboFlag CF_ENEMY4 = 41

ComboFlag CF_ENEMY5 = 42

ComboFlag CF_ENEMY6 = 43

ComboFlag CF_ENEMY7 = 44

ComboFlag CF_ENEMY8 = 45

ComboFlag CF_ENEMY9 = 46

ComboFlag CF_PUSHLR = 47

ComboFlag CF_PUSHUP = 48

ComboFlag CF_PUSHDOWN = 49

ComboFlag CF_PUSHLEFT = 50

ComboFlag CF_PUSHRIGHT = 51

ComboFlag CF_PUSHUPDOWNNS = 52

ComboFlag CF_PUSHLEFTRIGHTNS = 53

ComboFlag CF_PUSH4WAYNS = 54

ComboFlag CF_PUSHUPNS = 55

ComboFlag CF_PUSHDOWNNS = 56

ComboFlag CF_PUSHLEFTNS = 57

ComboFlag CF_PUSHRIGHTNS = 58

ComboFlag CF_PUSHUPDOWNINS = 59

ComboFlag CF_PUSHLEFTRIGHTINS = 60

ComboFlag CF_PUSH4WAYINS = 61

ComboFlag CF_PUSHUPINS = 62

ComboFlag CF_PUSHDOWNINS = 63

ComboFlag CF_PUSHLEFTINS = 64

ComboFlag CF_PUSHRIGHTINS = 65

ComboFlag CF_BLOCKTRIGGER = 66

ComboFlag CF_NOBLOCKS = 67

ComboFlag CF_BRANG1 = 68

ComboFlag CF_BRANG2 = 69

ComboFlag CF_BRANG3 = 70

ComboFlag CF_ARROW2 = 71

ComboFlag CF_ARROW3 = 72

ComboFlag CF_CANDLE2 = 73

ComboFlag CF_WANDFIRE = 74

ComboFlag CF_DINSFIRE = 75

ComboFlag CF_WANDMAGIC = 76

ComboFlag CF_REFMAGIC = 77

ComboFlag CF_REFFIREBALL = 78

ComboFlag CF_SWORD1 = 79

ComboFlag CF_SWORD2 = 80

ComboFlag CF_SWORD3 = 81

ComboFlag CF_SWORD4 = 82

ComboFlag CF_SWORD1BEAM = 83

ComboFlag CF_SWORD2BEAM = 84

ComboFlag CF_SWORD3BEAM = 85

ComboFlag CF_SWORD4BEAM = 86

ComboFlag CF_HOOKSHOT = 87

ComboFlag CF_WAND = 88

ComboFlag CF_HAMMER = 89

ComboFlag CF_STRIKE = 90

ComboFlag CF_BLOCKHOLE = 91

ComboFlag CF_MAGICFAIRY = 92

ComboFlag CF_ALLFAIRY = 93

ComboFlag CF_SINGLE = 94

ComboFlag CF_SINGLE16 = 95

ComboFlag CF_NOENEMY = 96

ComboFlag CF_NOGROUNDENEMY = 97

ComboFlag CF_SCRIPT1 = 98

ComboFlag CF_SCRIPT2 = 99

ComboFlag CF_SCRIPT3 = 100

ComboFlag CF_SCRIPT4 = 101

ComboFlag CF_SCRIPT5 = 102

ComboFlag CF_RAFTBOUNCE = 103

ComboFlag CF_PUSHED = 104

ComboFlag CF_SCRIPT6 = 105

ComboFlag CF_SCRIPT7 = 106

ComboFlag CF_SCRIPT8 = 107

ComboFlag CF_SCRIPT9 = 108

ComboFlag CF_SCRIPT10 = 109

ComboFlag CF_SCRIPT11 = 110

ComboFlag CF_SCRIPT12 = 111

ComboFlag CF_SCRIPT13 = 112

ComboFlag CF_SCRIPT14 = 113

ComboFlag CF_SCRIPT15 = 114

ComboFlag CF_SCRIPT16 = 115

ComboFlag CF_SCRIPT17 = 116

ComboFlag CF_SCRIPT18 = 117

ComboFlag CF_SCRIPT19 = 118

ComboFlag CF_SCRIPT20 = 119

ComboFlag CF_SCRIPT_PIT = 120

Pit or Hole (Scripted).

ComboFlag CF_SCRIPT_PIT_FALL = 121

Pit or Hole, Fall Down Floor (Scripted).

ComboFlag CF_SCRIPT_LAVA = 122

Fire or Lava (Scripted).

ComboFlag CF_SCRIPT_ICE = 123

Ice (Scripted).

ComboFlag CF_SCRIPT_ICE_DMG = 124

Ice, Damaging (Scripted).

ComboFlag CF_SCRIPT_DAMAGE_1 = 125

Damage-1 (Scripted).

ComboFlag CF_SCRIPT_DAMAGE_2 = 126

Damage-2 (Scripted).

ComboFlag CF_SCRIPT_DAMAGE_4 = 127

Damage-4 (Scripted).

ComboFlag CF_SCRIPT_DAMAGE_8 = 128

Damage-8 (Scripted).

ComboFlag CF_SCRIPT_DAMAGE_16 = 129

Damage-16 (Scripted).

ComboFlag CF_SCRIPT_DAMAGE_32 = 130

Damage-32 (Scripted).

ComboFlag CF_SCRIPT_FREEZE_SCREEN = 131

Freeze Screen (Unimplemented).

ComboFlag CF_SCRIPT_FREEZE_SCREEN_EXCEPT_FFCS = 132

Freeze Screen, Except FFCs (Unimplemented).

ComboFlag CF_SCRIPT_FREEZE_FFCS_ONLY = 133

Freeze FFCs Only (Unimplemented).

ComboFlag CF_LW_SCRIPT1 = 134

Trigger LW_SCRIPT1 (Unimplemented).

ComboFlag CF_LW_SCRIPT2 = 135

Trigger LW_SCRIPT2 (Unimplemented).

ComboFlag CF_LW_SCRIPT3 = 136

Trigger LW_SCRIPT3 (Unimplemented).

ComboFlag CF_LW_SCRIPT4 = 137

Trigger LW_SCRIPT4 (Unimplemented).

ComboFlag CF_LW_SCRIPT5 = 138

Trigger LW_SCRIPT5 (Unimplemented).

ComboFlag CF_LW_SCRIPT6 = 139

Trigger LW_SCRIPT6 (Unimplemented).

ComboFlag CF_LW_SCRIPT7 = 140

Trigger LW_SCRIPT7 (Unimplemented).

ComboFlag CF_LW_SCRIPT8 = 141

Trigger LW_SCRIPT8 (Unimplemented).

ComboFlag CF_LW_SCRIPT9 = 142

Trigger LW_SCRIPT9 (Unimplemented).

ComboFlag CF_LW_SCRIPT10 = 143

Trigger LW_SCRIPT10 (Unimplemented).

ComboFlag CF_SCRIPT_DIG = 144

Dig Spot (Scripted).

ComboFlag CF_SCRIPT_DIG_NEXT = 145

Dig Spot, Next (Scripted).

ComboFlag CF_SCRIPT_DIG_ITEM = 146

Dig Spot, Special Item (Scripted).

ComboFlag CF_SCRIPT_POT_SLASH = 147

Pot, Slashable (Scripted).

ComboFlag CF_SCRIPT_POT_LIFT = 148

Pot, Liftable (Scripted).

ComboFlag CF_SCRIPT_POT_SLASH_OR_LIFT = 149

Pot, Slash or Lift (Scripted).

ComboFlag CF_SCRIPT_LIFT_NORMAL = 150

Rock, Lift Normal (Scripted).

ComboFlag CF_SCRIPT_LIFT_HEAVY = 151

Rock, Lift Heavy (Scripted).

ComboFlag CF_SCRIPT_DROPSET_ITEM = 152

Dropset Item (Scripted).

ComboFlag CF_SCRIPT_SPECIAL_ITEM = 153

Special Item (Scripted).

ComboFlag CF_SCRIPT_DROP_KEY = 154

Drop Key (Scripted).

ComboFlag CF_SCRIPT_DROP_LKEY = 155

Drop level-Specific Key (Scripted).

ComboFlag CF_SCRIPT_DROP_COMPASS = 156

Drop Compass (Scripted).

ComboFlag CF_SCRIPT_DROP_MAP = 157

Drop Map (Scripted).

ComboFlag CF_SCRIPT_DROP_BOSS_KEY = 158

Drop Boss Key (Scripted).

ComboFlag CF_SCRIPT_SPAWN_NPC = 159

Spawn NPC (Scripted).

ComboFlag CF_SCRIPT_SWITCHHOOK = 160

SwitchHook Spot (Scripted).

ComboFlag CF_SCRIPT21 = 120

ComboFlag CF_SCRIPT22 = 121

ComboFlag CF_SCRIPT23 = 122

ComboFlag CF_SCRIPT24 = 123

ComboFlag CF_SCRIPT25 = 124

ComboFlag CF_SCRIPT26 = 125

ComboFlag CF_SCRIPT27 = 126

ComboFlag CF_SCRIPT28 = 127

ComboFlag CF_SCRIPT29 = 128

ComboFlag CF_SCRIPT30 = 129

ComboFlag CF_SCRIPT31 = 130

ComboFlag CF_SCRIPT32 = 144

ComboFlag CF_SCRIPT33 = 145

ComboFlag CF_SCRIPT34 = 146

ComboFlag CF_SCRIPT35 = 147

ComboFlag CF_SCRIPT36 = 148

ComboFlag CF_SCRIPT37 = 149

ComboFlag CF_SCRIPT38 = 150

ComboFlag CF_SCRIPT39 = 151

ComboFlag CF_SCRIPT40 = 152

ComboFlag CF_SCRIPT41 = 153

ComboFlag CF_SCRIPT42 = 154

ComboFlag CF_SCRIPT43 = 155

ComboFlag CF_SCRIPT44 = 156

ComboFlag CF_SCRIPT45 = 157

ComboFlag CF_SCRIPT46 = 158

ComboFlag CF_SCRIPT47 = 159

ComboFlag CF_SCRIPT48 = 160

ComboFlag CF_SIDEVIEW_LADDER = 161

Sideview Ladder.

ComboFlag CF_SIDEVIEW_PLATFORM = 162

Sideview Platform.

ComboFlag CF_NO_ENEMIES_SPAWN = 163

No Enemies Spawn.

ComboFlag CF_ALL_ENEMIES_SPAWN = 164

All Enemies Spawn.

ComboFlag CF_SECRETS_NEXT = 165

Secrets->Next.


enum BlitModeBitflags: 🔗 Source

Used with the blit drawing functions. Some modes cannot be combined. If a combination is not supported, an error detailing this will be shown in allegro.log.

BlitModeBitflags BITDX_NORMAL = 0

BlitModeBitflags BITDX_TRANS = 1

Translucent.

BlitModeBitflags BITDX_PIVOT = 2

THe sprite will rotate at a specific point, instead of its center.

BlitModeBitflags BITDX_VFLIP = 4

Vertical Flip.

BlitModeBitflags BITDX_HFLIP = 8

Horizontal Flip.


enum UnblockableBitflags: 🔗 Source

UnblockableBitflags UNBLOCK_NONE = 0

Not unblockable.

UnblockableBitflags UNBLOCK_NORM = 1

Bypasses normal ‘block’ defenses.

UnblockableBitflags UNBLOCK_IGNR = 2

Bypasses ‘ignore’ defenses.

UnblockableBitflags UNBLOCK_SHLD = 4

Bypasses enemy/hero ‘shields’.

UnblockableBitflags UNBLOCK_REFL = 8

Bypasses hero ‘reflect’ on shields.

UnblockableBitflags UNBLOCK_ALL = 15

All bits set.


enum HitIndex: 🔗 Source

Used with Hero->HitBy[] and npc::HitBy[].

HitIndex HIT_BY_NPC = 0

Hero only.

HitIndex HIT_BY_EWEAPON = 1

Hero only.

HitIndex HIT_BY_LWEAPON = 2

HitIndex HIT_BY_FFC = 3

Unimplemented.

HitIndex HIT_BY_NPC_UID = 4

Hero only. The scripting UID of the enemy, used with Screen->LoadNPCByUID().

HitIndex HIT_BY_EWEAPON_UID = 5

Hero only. The scripting UID of the eweapon, used with Screen->LoadEWeaponByUID().

HitIndex HIT_BY_LWEAPON_UID = 6

Hero only. The scripting UID of the leweapon, used with Screen->LoadLWeaponByUID().

HitIndex HIT_BY_FFC_UID = 7

Unimplemented.

HitIndex HIT_BY_LWEAPON_PARENT_ID = 8

The item id of the item that the weapon that hit came from. -1 if the lweapon is script created.

HitIndex HIT_BY_LWEAPON_PARENT_FAMILY = 9

The item class of the item that the weapon that hit came from (see ItemType (IC_)). -1 if the lweapon is script created.

HitIndex HIT_BY_NPC_TYPE = 10

Hero only. The enemy class of the enemy that hit the Hero (see NPCType (NPCT_)).

HitIndex HIT_BY_EWEAPON_TYPE = 11

Hero only. The ID of the weapon that hit (see LWeaponType (LW_) and EWeaponType (EW_)).

HitIndex HIT_BY_LWEAPON_TYPE = 12

The internal UID used by the engine for the thing.

HitIndex HIT_BY_NPC_PTR = 13

Can cast to an npc: npc n = <npc>(Hero->HitBy[HIT_BY_NPC_PTR]).

HitIndex HIT_BY_EWEAPON_PTR = 14

Can cast to an eweapon: eweapon wpn = <eweapon>(Hero->HitBy[HIT_BY_EWEAPON_PTR]).

HitIndex HIT_BY_LWEAPON_PTR = 15

Can cast to an lweapon: lweapon wpn = <lweapon>(Hero->HitBy[HIT_BY_LWEAPON_PTR]).

HitIndex HIT_BY_NPC_ID = 16

The ID of the enemy that did the hit.


enum PickupStringBitflags: 🔗 Source

PickupStringBitflags IPSTR_ALWAYS = 1

PickupStringBitflags IPSTR_ONLYHELD = 2


enum ComboLiftFlag: 🔗 Source

Used with combodata::LiftFlags[].

ComboLiftFlag LF_LIFTABLE = 0

ComboLiftFlag LF_DROPSET = 1

ComboLiftFlag LF_DROPONLIFT = 2

ComboLiftFlag LF_SPECIALITEM = 3

ComboLiftFlag LF_NOUCSET = 4

ComboLiftFlag LF_NOWPNCMBCSET = 5

ComboLiftFlag LF_BREAKONSOLID = 6

TODO: Deprecate this with new weapon_data access


enum LiftFlag: 🔗 Source

Used with Hero->LiftFlags[].

LiftFlag LIFTFL_DISABLE_SHIELD = 0

Disable shield when lifting the same way it is when swinging a weapon.

LiftFlag LIFTFL_DISABLE_ITEMS = 1

Disable all items unrelated to lifting. Items related to lifting, such as bombs with the liftable flag set or a Lift Glove, will throw the held item regardless.

LiftFlag LIFTFL_NO_SWIMMING = 2

LiftFlag LIFTFL_DROP_ON_HIT = 3

LiftFlag LIFTFL_MAX = 4


enum LightShape: 🔗 Source

Used with sprite::LightShape, torch combos/itemdata.

LightShape LIGHT_CIRCLE = 0

LightShape LIGHT_CONE = 1

LightShape LIGHT_SQUARE = 2


enum WeaponDeadState: 🔗 Source

Used with lweapon::DeadState and eweapon::DeadState.

WeaponDeadState WDS_NOHIT = -10

This value switches collision detection off. Deprecated by lweapon::CollDetection.

WeaponDeadState WDS_ALIVE = -1

Weapon is currently ‘alive’.

WeaponDeadState WDS_DEAD = 0

Use to dispose of most weapons.

WeaponDeadState WDS_BEAMSHARDS = 23

Used with LW_BEAM to shatter it into shards.

WeaponDeadState WDS_ARROW = 4

Used with LW_ARROW to make them ‘wink out’ using tile 54.

WeaponDeadState WDS_BOUNCE = 1

Used with LW_BRANG or LW_HOOKSHOT to make it ‘bounce off’ and begin returning to Link.


enum InteractButton: 🔗 Source

InteractButton INTBTN_A = 0

InteractButton INTBTN_B = 1

InteractButton INTBTN_L = 2

InteractButton INTBTN_R = 3

InteractButton INTBTN_EX1 = 4

InteractButton INTBTN_EX2 = 5

InteractButton INTBTN_EX3 = 6

InteractButton INTBTN_EX4 = 7

InteractButton INTBTN_X = 4

InteractButton INTBTN_Y = 5


enum SpecialDrawLayer: 🔗 Source

Special hardcoded draw layers. These may draw multiple times, or no times at all, during a frame. Timing may vary from frame to frame, and based on QRs or other settings.

SpecialDrawLayer SPLAYER_PLAYER_DRAW = -200000

The Hero, when this occurs changes based on various conditions.

SpecialDrawLayer SPLAYER_EWEAP_BEHIND_DRAW = -199999

Eweapons with ‘Behind = true’

SpecialDrawLayer SPLAYER_EWEAP_FRONT_DRAW = -199998

Eweapons with ‘Behind = false’

SpecialDrawLayer SPLAYER_LWEAP_BEHIND_DRAW = -199997

Lweapons with ‘Behind = true’

SpecialDrawLayer SPLAYER_LWEAP_FRONT_DRAW = -199996

Lweapons with ‘Behind = false’

SpecialDrawLayer SPLAYER_LWEAP_ABOVE_DRAW = -199995

Lweapons with (Z+FakeZ) > Init Data ‘Jump Layer Height’, IF the Hero is also above this height.

Hookshot chain links. This may draw multiple times per frame.

SpecialDrawLayer SPLAYER_NPC_DRAW = -199993

Enemies

SpecialDrawLayer SPLAYER_NPC_ABOVEPLAYER_DRAW = -199992

Enemies ‘grabbing’ the Hero, or with a higher Z than the Hero

SpecialDrawLayer SPLAYER_NPC_AIRBORNE_DRAW = -199991

Flying enemies, or enemies in the Z axis (amount required QR dependant)

SpecialDrawLayer SPLAYER_ITEMSPRITE_DRAW = -199990

Itemsprites

SpecialDrawLayer SPLAYER_FAIRYITEM_DRAW = -199989

Moving fairies

SpecialDrawLayer SPLAYER_PUSHBLOCK = -199988

Pushable Blocks

SpecialDrawLayer SPLAYER_MOVINGBLOCK = -199987

Moving Pushable Blocks

SpecialDrawLayer SPLAYER_OVERHEAD_CMB = -199986

Overhead combos

SpecialDrawLayer SPLAYER_OVERHEAD_FFC = -199985

Overhead ffcs

SpecialDrawLayer SPLAYER_DARKROOM_UNDER = -199984

Under dark room darkness

SpecialDrawLayer SPLAYER_DARKROOM_OVER = -199983

Over dark room darkness

SpecialDrawLayer SPLAYER_FFC_DRAW = -199982

Non-Overhead ffcs - Draws during a timing above layer 1 and 2

SpecialDrawLayer SPLAYER_LENS_UNDER_1 = -199981

Lens drawing secrets/revealing things

SpecialDrawLayer SPLAYER_LENS_UNDER_2 = -199980

Lens drawing secrets/revealing things

SpecialDrawLayer SPLAYER_LENS_OVER = -199979

Lens drawing blackness to cover most of the screen


enum SizeOverrideBitflags: 🔗 Source

Used with itemdata::SizeFlags, itemdata::WeaponSizeFlags, npcdata::SizeFlags. These correspond to the “Enabled” checkboxes in the Graphics->Size tab in the Item and Enemy Editors.

SizeOverrideBitflags SZFLAG_TILEWIDTH = 1

SizeOverrideBitflags SZFLAG_TILEHEIGHT = 2

SizeOverrideBitflags SZFLAG_HIT_WIDTH = 4

SizeOverrideBitflags SZFLAG_HIT_HEIGHT = 8

SizeOverrideBitflags SZFLAG_HIT_Z_HEIGHT = 16

SizeOverrideBitflags SZFLAG_HIT_X_OFFSET = 32

SizeOverrideBitflags SZFLAG_HIT_Y_OFFSET = 64

SizeOverrideBitflags SZFLAG_DRAW_X_OFFSET = 128

SizeOverrideBitflags SZFLAG_DRAW_Y_OFFSET = 256

SizeOverrideBitflags SZFLAG_DRAW_Z_OFFSET = 512

Enemies only.

SizeOverrideBitflags SZFLAG_ALL = 1023


enum RealTimeClockCategory: 🔗 Source

System Real Time Clock (RTC) categories for GetSystemTime().

RealTimeClockCategory RTC_YEAR = 0

RealTimeClockCategory RTC_MONTH = 1

RealTimeClockCategory RTC_DAYOFMONTH = 2

RealTimeClockCategory RTC_DAYOFWEEK = 3

RealTimeClockCategory RTC_HOUR = 4

RealTimeClockCategory RTC_MINUTE = 5

RealTimeClockCategory RTC_SECOND = 6

RealTimeClockCategory RTC_DAYOFYEAR = 7

RealTimeClockCategory RTC_DAYLIGHTTIME = 8

RealTimeClockCategory RTC_LAST = 9


enum StoredMemoryBitflags: 🔗 Source

Bitflags for SaveSRAM() and LoadSRAM().

StoredMemoryBitflags SRAM_ALL = 0

StoredMemoryBitflags SRAM_NPCDATA = 1

StoredMemoryBitflags SRAM_ITEMDATA = 2

StoredMemoryBitflags SRAM_SPRITEDATA = 4

StoredMemoryBitflags SRAM_COMBODATA = 8

StoredMemoryBitflags SRAM_DMAPDATA = 16

StoredMemoryBitflags SRAM_MAPDATA = 32


enum GenericScriptEvent: 🔗 Source

Used with WaitEvent(), genericdata::EventListen[].

GenericScriptEvent GENSCR_EVENT_NIL = -1

N/A (error value)

GenericScriptEvent GENSCR_EVENT_INIT = 0

When loading in from a save/new quest.

GenericScriptEvent GENSCR_EVENT_CONTINUE = 1

When F6->Continue

GenericScriptEvent GENSCR_EVENT_FFC_PRELOAD = 2

When FFCs run ‘on screen init’

GenericScriptEvent GENSCR_EVENT_CHANGE_SCREEN = 3

When the screen changes

GenericScriptEvent GENSCR_EVENT_CHANGE_DMAP = 4

When the dmap changes

GenericScriptEvent GENSCR_EVENT_CHANGE_LEVEL = 5

When the level changes

GenericScriptEvent GENSCR_EVENT_HERO_HIT_1 = 6

Hero is hit, before ring applied. Game->EventData[] indexed via EventDataIndex_HeroHit (GENEV_HEROHIT_).

GenericScriptEvent GENSCR_EVENT_HERO_HIT_2 = 7

Hero is hit, after ring applied. Game->EventData[] indexed via EventDataIndex_HeroHit (GENEV_HEROHIT_).

GenericScriptEvent GENSCR_EVENT_COLLECT_ITEM = 8

Item is collected. Game->EventData[] indexed via EventDataIndex_CollectItem (GENEV_ITEMCOL_).

GenericScriptEvent GENSCR_EVENT_ENEMY_DROP_ITEM_1 = 9

Enemy drops item (before item created). Game->EventData[] indexed via EventDataIndex_EnemyDropItem1 (GENEV_EDI1_).

GenericScriptEvent GENSCR_EVENT_ENEMY_DROP_ITEM_2 = 10

Enemy drops item (if & after item created). Game->EventData[] indexed via EventDataIndex_EnemyDropItem2 (GENEV_EDI2_).

GenericScriptEvent GENSCR_EVENT_ENEMY_DEATH = 11

Enemy dying. Game->EventData[] indexed via EventDataIndex_EnemyDeath (GENEV_EDEATH_).

GenericScriptEvent GENSCR_EVENT_ENEMY_HIT1 = 12

Enemy hit, before defenses. Game->EventData[] indexed via EventDataIndex_EnemyHit (GENEV_EHIT_).

GenericScriptEvent GENSCR_EVENT_ENEMY_HIT2 = 13

Enemy hit, after defenses. Game->EventData[] indexed via EventDataIndex_EnemyHit (GENEV_EHIT_).

GenericScriptEvent GENSCR_EVENT_POST_COLLECT_ITEM = 14

After item is collected (post hold if held).

GenericScriptEvent GENSCR_EVENT_PLAYER_FALL = 15

Hero falls in a pitfall. Game->EventData[] indexed via EventDataIndex_PlayerFallDrown.

GenericScriptEvent GENSCR_EVENT_PLAYER_DROWN = 16

Hero drowns. Game->EventData[] indexed via EventDataIndex_PlayerFallDrown.

GenericScriptEvent GENSCR_NUMEVENT = 17

N/A (max value)


enum ScriptTiming: 🔗 Source

ScriptTiming SCR_TIMING_INIT = -1

ScriptTiming SCR_TIMING_START_FRAME = 0

ScriptTiming SCR_TIMING_POST_COMBO_ANIM = 1

ScriptTiming SCR_TIMING_POST_POLL_INPUT = 2

ScriptTiming SCR_TIMING_POST_FFCS = 3

ScriptTiming SCR_TIMING_POST_GLOBAL_ACTIVE = 4

ScriptTiming SCR_TIMING_POST_PLAYER_ACTIVE = 5

ScriptTiming SCR_TIMING_POST_DMAPDATA_ACTIVE = 6

ScriptTiming SCR_TIMING_POST_DMAPDATA_PASSIVESUBSCREEN = 7

ScriptTiming SCR_TIMING_POST_COMBOSCRIPT = 8

ScriptTiming SCR_TIMING_POST_PUSHBLOCK = 9

ScriptTiming SCR_TIMING_POST_ITEMSPRITE_SCRIPT = 10

ScriptTiming SCR_TIMING_POST_ITEMSPRITE_ANIMATE = 11

ScriptTiming SCR_TIMING_POST_NPC_ANIMATE = 12

ScriptTiming SCR_TIMING_POST_EWPN_ANIMATE = 13

ScriptTiming SCR_TIMING_POST_EWPN_SCRIPT = 14

ScriptTiming SCR_TIMING_POST_OLD_ITEMDATA_SCRIPT = 15

ScriptTiming SCR_TIMING_POST_PLAYER_ANIMATE = 16

ScriptTiming SCR_TIMING_POST_NEW_ITEMDATA_SCRIPT = 17

ScriptTiming SCR_TIMING_POST_CASTING = 18

ScriptTiming SCR_TIMING_POST_LWPN_ANIMATE = 19

ScriptTiming SCR_TIMING_POST_DECOPARTICLE_ANIMATE = 20

ScriptTiming SCR_TIMING_POST_COLLISIONS_PALETTECYCLE = 21

ScriptTiming SCR_TIMING_WAITDRAW = 22

ScriptTiming SCR_TIMING_POST_GLOBAL_WAITDRAW = 23

ScriptTiming SCR_TIMING_POST_PLAYER_WAITDRAW = 24

ScriptTiming SCR_TIMING_POST_DMAPDATA_ACTIVE_WAITDRAW = 25

ScriptTiming SCR_TIMING_POST_DMAPDATA_PASSIVESUBSCREEN_WAITDRAW = 26

ScriptTiming SCR_TIMING_POST_SCREEN_WAITDRAW = 27

ScriptTiming SCR_TIMING_POST_FFC_WAITDRAW = 28

ScriptTiming SCR_TIMING_POST_COMBO_WAITDRAW = 29

ScriptTiming SCR_TIMING_POST_ITEM_WAITDRAW = 30

ScriptTiming SCR_TIMING_POST_NPC_WAITDRAW = 31

ScriptTiming SCR_TIMING_POST_EWPN_WAITDRAW = 32

ScriptTiming SCR_TIMING_POST_LWPN_WAITDRAW = 33

ScriptTiming SCR_TIMING_POST_ITEMSPRITE_WAITDRAW = 34

ScriptTiming SCR_TIMING_PRE_DRAW = 35

ScriptTiming SCR_TIMING_POST_DRAW = 36

ScriptTiming SCR_TIMING_POST_STRINGS = 37

ScriptTiming SCR_TIMING_END_FRAME = 38

ScriptTiming SCR_NUM_TIMINGS = 39


enum QR: 🔗 Source

Quest rules. Used to toggle legacy behavior and other quest-wide options.

QR qr_SOLIDBLK = 0

‘Can’t Push Blocks Onto Unwalkable Combos’

Prevents you from pushing a push block into a solid combo. The exception is Block Hole flagged combos, which can still be pushed into regardless of solidity.

QR qr_NOTMPNORET = 1

‘Lanmolas/Traps don’t keep room dead.’

If enabled, Lanmolas don’t keep the entire room marked as dead when you kill one, and rooms with traps don’t keep the room marked as dead when you kill the entire room. If disabled, either of these will keep enemies from respawning until you leave and re-enter the dungeon.

QR qr_ALWAYSRET = 2

‘Enemies Always Return’

If enabled, regular enemies will always return when you leave the screen and come back, regardless of how many you killed before leaving. This does not affect ‘dungeon boss’ screen flagged enemies if the screen is cleared, nor does it affect enemies which are flagged to ‘never return after death’; enemies in these conditions will stay dead regardless of this rule.

QR qr_MEANTRAPS = 3

‘Line of Sight Traps Obey Solidity And Don’t Have Hardcoded Directions’

If enabled, Line of Sight traps will return when they hit a solid object. If disabled, they will only return depending on their position as determined by ‘Line-of-Sight Traps Can Move Across Entire Screen’. This rule also determines if the directions a trap can move in are hardcoded based on its position. If this rule is enabled, they are not hardcoded. If this rule is disabled, traps will be unable to travel in certain directions if placed in specific positions.

QR qr_BSZELDA = 4

‘BS-Zelda Animation Quirks’

Affects a number of small miscellaneous stuff to make Z1 more accurate to BS Zelda. Guy fires have their positions adjusted, enemy spawn animations are faster, enemy and Hero death animations have more frames, wand magic moves 0.5 pixels per frame faster, weapon flashing is slightly different, boomerangs may animate different, and most weapons gain a 2 pixel Y offset when created. Having this enabled also deprecates the ‘Fix Hero’s Position in Dungeons’ quest rule, as this rule fixes that behavior as well. If this rule is disabled, Whistle Whirlwinds appear as flame for a single frame when hitting the edge of the screen.

QR qr_FADE = 5

‘Interpolated Fading’

If enabled, dark rooms and cave/passage entering will automatically calculate the dark room colors. Enabling this also enables the usage of Palette Cycling, but you lose the ability to manually decide dark room colors.

QR qr_FADECS5 = 6

‘Fade CSet 5’

When enabled, CSet 5 will also fade when in dark rooms or when scrolling. Limited only to Interpolated Fading.

QR qr_FASTDNGN = 7

‘Fast Dungeon Scrolling’

Prevents the speed of the scrolling animation when changing screens from being halved within dungeons. When disabled, the scrolling speed is a 4 frame initial delay, followed by 2 pixels per frame. If enabled, the initial delay is 2 frames, followed by 4 pixels per frame. Note that if ‘Smooth Vertical Scrolling’ is disabled, the speed when scrolling up and down will always be 8 pixels per few frames, regardless of this rule, *unless* ‘Very Fast Scrolling’ is enabled, in which case both ‘Fast Dungeon Scrolling’ and ‘Smooth Vertical Scrolling’ are completely ignored and the scrolling speed will be 16 pixels per frame in all directions.

QR qr_NOLEVEL3FIX = 8

‘Level 3 CSet 6 Fix’

When disabled, color 2 of CSet 6 will use color 7 of CSet 3 when in a dmap with a level of 3. If enabled, this behavior is ignored.

QR qr_COOLSCROLL = 9

‘Circle Opening/Closing Wipes’

Changes the animation going to/from full black when entering caves or starting the game. If multiple are selected, it will be chosen randomly between the ones that are selected. If none are selected, the Z1 opening is used. This opening animation has a circle cut out from the black expand either outwards or inwards.

QR qr_NOSCROLL = 10

‘No Screen Scrolling’

Removes the scrolling animation that happens when normally changing screens; instead instantly warping you to the next screen.

QR qr_4TRI = 11

‘Big Triforce Pieces’

If enabled, the triforce requirement for the Triforce Check roomtype is reduced, and each triforce that you pick up will fill in 2 slots instead of 1 on the subscreen triforce frame. The extra slot it fills is equal to the level number of the triforce you picked up + 4.

QR qr_EXPLICIT_RAFTING = 12

Deprecated.

QR qr_FASTFILL = 13

‘Fast Heart Refill’

If enabled, potions and fairy rings will restore half a heart every 6 frames while healing. If disabled, they will restore half a heart every 22 frames.

QR qr_CAVEEXITNOSTOPMUSIC = 14

‘Leaving Item Cellar/Passageway Doesn’t Restart Music’

If enabled, leaving a Screen 80 room (such as an Item Cellar, Cave, or Passageway) will not restart the currently playing music. Otherwise, if disabled, it will restart the music.

QR qr_3TRI = 15

‘3 or 6 Triforce Total’

If enabled, the triforce requirement for the Triforce Check roomtype is lowered to 6 triforce pieces, from 8. This is further reduced by the ‘Big Triforce Pieces’ rule, which halves the requirement to 3.

QR qr_TIME = 16

‘Show Time On Subscreen’

If enabled, current Game Time can be shown on the subscreen. This displays how long you’ve been playing on that save file. Note that having cheats turned on will prevent the Game Time from displaying, even if this quest rule is enabled.

QR qr_FREEFORM = 17

‘Freeform Dungeons’

If enabled, dungeons lose the hardcoded behaviors regarding the edge of the screen. Normally, when disabled, the Hero can only walk towards or away from the edge of the screen when less than 2 tiles away from the edge of the screen, you cannot walk upwards onto the topmost two rows of combos except where the northern door would be, and all combos on the edge of the screen draw over sprites. Enabling this rule disables these behaviors.

QR qr_KILLALL = 18

‘Must Kill All Bosses To Set ‘No Return’ Screen State’

If enabled, killing an enemy that has ‘Never Returns After Death’ set will will not set the screen flag that keeps them dead if there are any other enemies currently on screen that have that flag set. This means that only after killing all enemies with the flag set will the screen be marked as having killed the not-returning enemy. Otherwise, if disabled, killing any enemy with ‘Never Returns After Death’ will prevent any other enemy in the room with that flag set from also returning.

QR qr_NOFLICKER = 19

‘No NES Sprite Flicker’

Normally, the drawing order for enemies, items, hookshot chainlinks, and weapons alternate every frame. The order alternates between ‘Behind Weapons, Shadows, Enemies, Chainlinks, Non-Behind Weapons, Items’ and ‘Behind Weapons, Shadows, Items, Chainlinks, Enemies, Non-Behind Weapons’. If this rule is enabled, the drawing order is forced to be the former order regardless of frame.

QR qr_CONTFULL_DEP = 20

Deprecated.

QR qr_RLFIX = 21

‘Raft/Ladder Sprite Direction Fix’

If enabled, the Raft and Ladder will rotate their sprites when going left or right. If disabled, it will use the same sprite and same rotation regardless of which direction it goes in.

QR qr_LENSHINTS = 22

Deprecated.

QR qr_HERODUNGEONPOSFIX = 23

‘Fix Hero’s Position in Dungeons’

If disabled, and the rule ‘BS-Zelda Animation Quirks’ is disabled, the Hero gains a -2 y offset when in dungeons.Having either this or ‘BS-Zelda Animation Quirks’ enabled will disable this -2 y offset in dungeons.

QR qr_HOLDITEMANIMATION = 24

‘Items Held Above Hero’s Head Continue To Animate’

If enabled, when the Hero holds an item above their head, the item will continue to animate. If disabled, the item will be static and only use the first frame of their animation.

QR qr_HESITANTPUSHBLOCKS = 25

‘Push Blocks Don’t Move When Bumped’

Makes it so all push blocks must be pushed against for 4 frames before pushing. If this rule is off, simply bumping into the push block while facing it will instantly make it be pushed. Note that this rule does not affect Push (Wait) or similar blocks, which both have a hardcoded 16 frame delay and need all enemies to be killed.

QR qr_HIDECARRIEDITEMS = 26

‘Hide Enemy-Carried Items’

If enabled, enemy-carried items are moved offscreen whenever the item-carrying enemy spawns, and is only moved back whenever the enemy dies. This prevents the Hero from bumping into the enemy to pick up the item before the enemy is killed. The exact coordinates the item is set to is -128, -128.

QR qr_FFCSCROLL = 27

‘FFCs Are Visible While The Screen Is Scrolling’

Freeform combos will display when scrolling the screen. If disabled, they won’t be visible until after scrolling stops.

QR qr_RAFTLENS = 28

Deprecated.

QR qr_SMOOTHVERTICALSCROLLING = 29

‘Smooth Vertical Scrolling’

If disabled, the screen scrolls 8 pixels every few frames going up and down, which can cause weird snapping issues. If enabled, the same speed for scrolling left and right is used for scrolling up and down.

QR qr_WHIRLWINDMIRROR = 30

‘Magic Mirrors Reflect Scripted Whirlwinds’

Let’s script-created Wind Weapons reflect off Mirrors. Note that this does not affect whistle-created whirlwinds; to have those reflect, check the ‘Whirlwinds Reflect off Prism/Mirror Combos’ Item Flag on the whistle item in the item editor.

QR qr_NOFLASHDEATH = 31

‘Enemies Don’t Flash When Dying’

If enabled, the cset of the enemy’s death animation will not flash. This rule is ignored if the rule ‘BS-Zelda Animation Quirks’ is enabled, as enemies will not flash during their death animation if that rule is enabled regardless.

QR qr_HOLDNOSTOPMUSIC = 32

‘Holding Up Items Doesn’t Restart Music’

If enabled, holding up an item will not restart the currently playing music. If disabled, holding up an item will restart the current music.

QR qr_FIREPROOFHERO = 33

‘Scripted Fire LWeapons Don’t Hurt Hero’

If enabled, script-created Fire LWeapons will not hurt the Hero. In the original NES Zelda, the Hero took damage from their own fire weapons. Though Candle and Book-created fire weapons are determined by the item editor for those items now, this rule still affects script-created Hero fire weapons. If disabled, the Hero will take damage from script created Hero fire weapons, even though they are Hero weapons and not enemy weapons.

QR qr_OUCHBOMBS = 34

‘Scripted Bomb LWeapons Hurt Hero’

If enabled, script-created Hero Bomb Explosions hurt the Hero. This mimics more modern Zelda games where the players own bombs can hurt them. This used to affect Hero-placed bombs, but that functionality has since been moved to the bomb item in the item editor. This rule now only determines if script-created Hero bombs can hurt the Hero.

QR qr_NOCLOCKS_DEP = 35

Deprecated.

QR qr_TEMPCLOCKS_DEP = 36

Deprecated.

QR qr_BRKBLSHLDS_DEP = 37

Deprecated.

QR qr_BRKNSHLDTILES = 38

‘Broken Enemy Shield Tiles’

If enabled, enemies who have their shield broken with the hammer will switch to their special tile. If ‘Use New Enemy Tiles’ is disabled, this only affects enemies that have the ‘Darknut (NES)’ animation style.

QR qr_MEANPLACEDTRAPS = 39

‘Line-of-Sight Traps Can Move Across Entire Screen’

If enabled, Line of Sight traps will only be stopped either by hitting the screen edge or, if the rule ‘Line of Sight Traps Obey Solidity And Don’t Have Hardcoded Directions’ is enabled, by hitting a solid object. If disabled, they will arbitrarily stop at the middle of the screen either vertically or horizontally.

QR qr_PHANTOMPLACEDTRAPS = 40

‘Constant Traps Can Pass Through Enemies’

Normally, Constant Traps have collision with enemies, and will richochet and come back when they hit any enemy, including other traps. Enabling this rule disables this behavior.

QR qr_ALLOWFASTMSG = 41

‘Messages Can Be Sped Up With The A Button’

If enabled, holding the A button will prevent any message delay from occuring, displaying 60 characters per second.

QR qr_LINKEDCOMBOS = 42

Deprecated.

QR qr_NOGUYFIRES = 43

‘No Fires In Special Rooms’

If enabled, Guys in Special Rooms will not create Flames. This also means they cannot shoot fireballs when hit.

QR qr_HEARTRINGFIX = 44

‘Healing Fairy Heart Circle Is Centered Around Hero’

If enabled, the circle of hearts that display around the Hero when they step on a Fairy Circle will be centered around the Hero. If disabled, they will center on the center of the screen, or 125, 88.

QR qr_NOHEARTRING = 45

‘No Healing Fairy Heart Circle’

If enabled, the circle of hearts that normally display around the Hero when they step on a Fairy Circle will not display.

QR qr_OVERWORLDTUNIC = 46

‘Tunic Color Can Change In Overworld Caves’

If enabled, Tunic Color can change within screen 80 caves on overworld dmaps when obtaining a new tunic. Otherwise, if disabled, it will only update once the cave is left.

QR qr_SWORDWANDFLIPFIX = 47

‘Sword/Wand Flip Fix’

If enabled, the downwards sword/wand sprite is flipped both vertically and horizontally from the upwards sprites. Otherwise, if disabled, it will only flip the sprite vertically.

QR qr_ENABLEMAGIC = 48

‘Enable Magic Counter’

Enables Magic. Magic drops become enabled in dropsets, items that use magic will check for it, and magic meters on subscreens are enabled. If disabled, items set to use magic as their cost are instead free, and nothing will drop magic.

QR qr_MAGICWAND_DEP = 49

Deprecated.

QR qr_MAGICCANDLE_DEP = 50

Deprecated.

QR qr_MAGICBOOTS_DEP = 51

Deprecated.

QR qr_NONBUBBLEMEDICINE = 52

Deprecated.

QR qr_NONBUBBLEFAIRIES = 53

‘Fairy Rings Don’t Remove Sword Jinxes’

If enabled, fairy ring flags won’t heal sword jinxes when the Hero steps on them. This used to prevent ‘Fairy Combos Remove Item Jinxes’ from working, but this has since been patched and both quest rules can work independently.

QR qr_NONBUBBLETRIFORCE = 54

Deprecated.

QR qr_NEWENEMYTILES = 55

‘Use New Enemy Tiles’

If enabled, enemies will use different, more modern animation instead of their more NES-styled animation. Enemies will use New Tile and E. Anim in the enemy editor instead of Old Tile and O. Anim, and enemies will have access to features such as firing animations, tiles for all 4/8 directions, unique segment tiles, and etc. If disabled, enemies will use more basic, more limited animation.

QR qr_NOROPE2FLASH_DEP = 56

Deprecated.

QR qr_NOBUBBLEFLASH_DEP = 57

Deprecated.

Deprecated.

QR qr_BITMAPOFFSETFIX = 59

‘Use DrawBitmap() Offsets Prior to 2.50.2’

Recreates a bug where for the first frame it was created, the top of the bitmap would start at the top of the subscreen, before moving back down to the regular playing field. If this is disabled, it’ll use the fixed behavior, where it’ll always draw where the playing field is.

QR qr_PHANTOMGHINI2_DEP = 60

Deprecated.

QR qr_Z3BRANG_HSHOT = 61

Deprecated.

QR qr_NOITEMMELEE = 62

Deprecated.

QR qr_SHADOWS = 63

‘Show Shadows’

If enabled, enemies will draw shadows below them if they are in the air or if they are a flying enemy. How these shadows appear are affected by ‘Translucent Shadows’ and ‘Shadows Flicker’, both of which are found in Animation Rules.

QR qr_TRANSSHADOWS = 64

‘Translucent Shadows’

If enabled, the shadows of all sprites are drawn as translucent. This includes the Hero, Weapons, Enemies, and Items.

QR qr_QUICKSWORD = 65

Deprecated.

QR qr_BOMBHOLDFIX = 66

‘Hero Holds Special Bombs Over Their Head’

If enabled, the Hero can hold bombs over their head if the bomb is a Special Item in a Special Item Room. Otherwise, bombs will only be held over head if the Hero dives for them.

QR qr_EXPANDEDLTM = 67

‘Expanded Hero Tile Modifiers’

If enabled, Hero Tile Modifiers from items (such as shields) will always be applied to the Hero.

If disabled, they will only be applied if the Hero is walking or standing (either on land or while sideswimming), and only if the Hero is not facing up.

QR qr_NOPOTIONCOMBINE_DEP = 68

Deprecated.

QR qr_HEROFLICKER = 69

‘Invincible Hero Flickers’

If enabled, the Hero will flicker when invincible or after taking damage instead of flashing colors.

QR qr_SHADOWSFLICKER = 70

‘Shadows Flicker’

If enabled, the Hero’s Shadow and Enemy Shadows only draw every other frame. Items and Weapons are not affected by this.

QR qr_WALLFLIERS = 71

‘Flying Enemies Can Spawn on Solid Combos’

If enabled, flying enemies can spawn naturally on solid, non-‘No Flying Enemy’ flagged combos. Otherwise, they can only spawn on non-solid combos. Note that flying enemies can naturally move over solid combos regardless of this rule. This rule only affects if they can spawn over the Combos if they’re solid.

QR qr_NOBOMBPALFLASH = 72

‘Bomb Explosions Don’t Flash Palette’

When enabled, bombs won’t flash the screen when exploding.

QR qr_HEARTSREQUIREDFIX = 73

‘’Hearts Required’ Affects Non-Special Items’

If enabled, the heart requirement check applies no matter where the item is picked up. If disabled, it only applies to Special Items in the Special Item Roomtype, specifically the ones given by Room Guys.

QR qr_PUSHBLOCKCSETFIX = 74

‘Push Block CSet Fix’

If enabled, pushed blocks will use the CSet of their combo when pushed. Otherwise, if disabled, they will use CSet 9.

QR qr_TRANSLUCENTDIVINEPROTECTIONROCKET_DEP = 75

Deprecated.

QR qr_FLICKERINGDIVINEPROTECTIONROCKET_DEP = 76

Deprecated.

QR qr_CMBCYCLELAYERS = 77

‘Combo Cycling On Layers’

Allows combos to combo cycle when placed on Layers 1-6.

QR qr_DMGCOMBOPRI = 78

‘Lesser Damage Combos Take Priority’

If this is enabled and you touch two damage combos at once, the one with less damage takes priority. If disabled, the one with more damage takes priority.

QR qr_WARPSIGNOREARRIVALPOINT = 79

‘Set Continue Point Even If Arrival Square Isn’t Set’

When enabled, this rule will set the continue point on Entrance/Exit warps and Scrolling Warps (provided the latter can set continue points; see ‘Scrolling Warps Don’t Set The Continue Point’), even if the arrival square is located at 0, 0. If disabled, the continue point will skip being set if the ‘destination square’ isn’t set. ‘Destination square’ in this context can either mean the Arrival Square (green square) if the rule ‘Use Warp Return Points Only’ isn’t set, or Warp Return Point A (first blue square) if it is set. Note that if Warp Return Points are used instead of Arrival Squares, it is specifically Warp Return A that is being checked and used to determine if the continue point should be set. This means that if you were to disable this rule, and were to have the exit Warp Return be something other than Warp Return A, and you leave Warp Return A at 0, 0, you can control whether or not an Entrance/Exit or Scrolling Warp will set your continue point or not.

QR qr_LTTPCOLLISION = 80

‘Large Hitbox’

If enabled, the Hero’s walking hitbox is changed from 16x8 (the bottom half of the Hero’s sprite) to 16x16 (their entire sprite). The Hero cannot walk halfway into a solid combo from the bottom, and the collision detection of certain combos and flags is modified to account for this change of hitbox.

QR qr_LTTPWALK = 81

‘Diagonal Movement’

If enabled, disables the built in Hero gridlock, and allows the Hero to move diagonally.

Diagonal Movement also uses different logic for determining how many pixels the Hero should move from non-Diagonal Movement (or ‘4-way Movement’, from here out) when ‘New Hero Movement’ is disabled; 4-way Movement gives a different step speed depending on the Hero’s current X/Y position, usually averaging out to 1.3333 pixels of movement per frame; while Diagonal Movement alternates between 1 and 2 pixels every frame, averaging out to 1.5 pixels of movement per frame.

If ‘New Hero Movement’ is enabled, there is no speed difference between 4-Way Movement and Diagonal Movement, as the Hero’s position and speed use decimal precision.

QR qr_SLOWENEMYANIM_DEP = 82

Deprecated.

QR qr_TRUEARROWS = 83

‘Enable Arrow Counter’

Enables arrow ammo. Arrow ammo becomes enabled in dropsets, and the Bow and Arrow both check and use this arrow counter. If disabled, the Bow and Arrow will instead use Rupees, as in NES Zelda.

QR qr_NOSAVE = 84

‘No Saving When Continuing’

If enabled, removes the ‘Save’ option from the Game Over screen. Saving must be done through other methods.

QR qr_NOCONTINUE = 85

‘Return To File Select On Death/F6’

If enabled, the Continue Screen is skipped, and the Hero is returned to the file select screen on Death or Game->End. Note that this means all progress is lost since last save.

If an ‘onF6Menu’ script is assigned, this prevents the engine F6 menu from appearing after the scripted one is cancelled.

QR qr_QUARTERHEART = 86

‘Enable 1/4 Heart Life Bar’

If enabled, the Life Meter subscreen widget will display quarter hearts if the Hero has that much life. Otherwise, it will only display half and full hearts, rounding up.

QR qr_NOARRIVALPOINT = 87

‘Use Warp Return Points Only’

Instead of using the screen’s Arrival Square for continuing, the game uses Warp Return A as the continue point. With this enabled, the Arrival Square is useless.

QR qr_NOGUYPOOF = 88

‘Special Room Guys Don’t Create A Puff When Appearing’

If enabled, Special Room Guys and their Fires will not make a spawn poof when entering the screen.

QR qr_ALLOWMSGBYPASS = 89

‘Messages Can Be Bypassed With The B Button’

If enabled, pressing B during a message will cause the rest of the message to be displayed immediately with no regards for message speed.

QR qr_NODIVING = 90

Deprecated.

QR qr_LAYER12UNDERCAVE = 91

‘Layers 1 and 2 Are Drawn Under Caves’

If enabled, the Hero and the cave they’re exiting/entering are drawn above Layer 1 and 2 when entering/exiting a cave.

QR qr_NOSCROLLCONTINUE = 92

‘Scrolling Warps Don’t Set The Continue Point’

If enabled, Scrolling Warps will never set the screen’s continue point.

QR qr_SMARTSCREENSCROLL = 93

‘Smart Screen Scrolling’

Before scrolling the screen, checks the destination screen and position to see if it’s solid. If so, scrolling is cancelled. This rule is incredibly buggy on its own, and is nigh unusable without ‘Fixed Smart Scrolling’ enabled.

QR qr_RINGAFFECTDAMAGE = 94

Deprecated.

QR qr_ALLOW10RUPEEDROPS_DEP = 95

Deprecated.

QR qr_TRAPPOSFIX = 96

‘Trap Position Fix’

If enabled, Traps don’t have the -2 Y offset that all enemies spawn with in topdown gravity. If disabled, they will have the -2 Y offset all enemies usually spawn with.

QR qr_TEMPCANDLELIGHT = 97

‘Scripted and Enemy Fire Lights Temporarily’

If enabled, script created and enemy created fires will only light up the room temporarily, and will unlight the room when the last one disappears. This used to affect Hero-created fire, but that functionality can now be toggled on a per-candle or per-book basis in the item editor.

QR qr_REDPOTIONONCE_DEP = 98

Deprecated.

QR qr_OLDSTYLEWARP = 99

‘Use Old-Style Warp Detection (NES Movement Only)’

If enabled, you must be aligned with the 8x8 X and Y grid to trigger warps. If disabled, or if No GridLock or Diagonal Movement are enabled, warps can trigger even with X/Y values not evenly divisible by 8.

QR qr_NOBORDER = 100

‘No Invisible Border on Non-Dungeon DMaps’

Normally, there is a 1 tile border surrounding the edge of the screen that prevents enemies from walking on the screen edge, a 16 pixel border that kills the Hero’s weapons around the edge of the screen early, and a 8 pixel border that kills enemy weapons around the edge of the screen early. Additionally, there is a change to how close to the edge of the screen you are allowed to use melee weapons if the NES Fix ‘Can Use Items/Weapons on Edge of Screen’ is enabled, increasing the distance you need to be away from the edge by 8 pixels (or half a tile).

Enabling this rule will disable these behaviors.

QR qr_OLDTRIBBLES_DEP = 101

Deprecated.

QR qr_REFLECTROCKS = 102

Deprecated.

QR qr_OLDPICKUP = 103

‘Items Disappear During Hold-Up’

If enabled, all items are deleted whenever you hold up an item. If disabled, they won’t be deleted when you hold up an item. Is required to make Shop Items disappear after buying one if ‘Shop Items Disappear on Pickup’ is disabled.

QR qr_ENEMIESZAXIS = 104

‘Enemies Jump/Fly Through Z-Axis’

If enabled, certain enemies will make use of the Z-Axis in their behaviors. Tektites, Vires, Pols Voice, Rocks, and Boulders will jump/bounce through the Z-Axis instead of faking it via the Y-Axis, Peahats will lose their invulnerability while flying but will instead fly high enough that most weapons can’t hit it without the Hero jumping, and Summoner Wizzrobes will spawn their summoned enemies in the air.

QR qr_SAFEENEMYFADE = 105

‘Can Safely Trigger Armos/Grave From The South’

If enabled, fade-spawning enemies have no collision until after they finish spawning, preventing the Hero from taking damage from these enemies if they spawn from graves or armos and the Hero activates them from the south.

QR qr_MORESOUNDS = 106

‘More Sound Effects’

If enabled, more things use unique sounds. Summoning enemies use the Summon SFX instead of the Fire SFX, Fireballs and Rock Weapons have firing sounds, Traps make a sound when richocheting, Hammer makes a splash sound when pounding water, bushes/flowers/tall grass make a sound when cut, Hammer posts make a sound when pounded, the Lens of Truth play a sound when both used and unused, Push Blocks make a sound when pushed, Whistle Whirlwinds make a continuous sound when onscreen, Boomerangs make a continuous sound when onscreen, and all 3 Divine Spells (Divine Protection, Divine Escape, and Divine Fire) all use sound effects for everything they do.

QR qr_BRANGPICKUP = 107

Deprecated.

QR qr_HEARTPIECEINCR_DEP = 108

Deprecated.

QR qr_ITEMSONEDGES = 109

‘Can Use Items/Weapons on Edge of Screen’

If enabled, you can use items when in doorways or on screen edges. Normally, you can only use items when facing in a direction perpendicular to the screen edge you’e close to when you’re within 2 tiles of the screen edge, and you can’t use items at all when in the corner of the screen. Enabling this will disable this behavior and allow you to use items and weapons on the screen edge.

QR qr_EATSMALLSHIELD_DEP = 110

Deprecated.

QR qr_MSGFREEZE = 111

‘Messages Freeze All Action’

If enabled, everything on screen except for combo animation and combo cycling will freeze while a message is being displayed.

QR qr_SLASHFLIPFIX = 112

Deprecated.

QR qr_FIREMAGICSPRITE_DEP = 113

Deprecated.

QR qr_SLOWCHARGINGWALK = 114

Deprecated.

QR qr_NOWANDMELEE = 115

Deprecated.

QR qr_SLOWBOMBFUSES_DEP = 116

Deprecated.

QR qr_SWORDMIRROR = 117

‘Magic Mirror/Prism Combos Reflect Enemy and Scripted Sword Beams’

Allows sword beams to reflect off Mirror/Prism Combos. Note that this does not affect the Sword Beams that come from the Hero’s Sword; to have those reflect off mirrors, check the ‘Sword Beams Reflect off Mirror/Prism Combos’ Item Flag on the sword items you wish to have reflecting Sword Beams for in the item editor.

QR qr_SELECTAWPN = 118

‘Allow Setting A Button Items’

If enabled, you can select what item goes on the A button on the subscreen. If disabled, the A Button is hardcoded to the highest leveled Sword item that you possess, and you are prevented from equipping Sword-class items on the B button.

QR qr_LENSSEESENEMIES = 119

Deprecated.

QR qr_INSTABURNFLAGS = 120

‘Burn Flags Are Triggered Instantly’

Makes it so Fire weapons instantly trigger secrets upon touching a burn spot. If this rule is disabled, fire weapons need to linger on a burn trigger for almost a second to trigger them. A hidden side effect of this rule is that if you have the Magic Book, Wand Magic can also trigger fire secrets just by passing over the flag if the book would make it leave fire afterwards.

QR qr_DROWN = 121

‘Hero Drowns in Walkable Water’

When the Hero steps in water without powerful enough flippers to swim in it, they will drown.

QR qr_MSGDISAPPEAR = 122

‘Messages Disappear’

If enabled, messages will disappear if their next string is ‘0’. This also has the side effect of removing the barrier Guys put across the top of the screen, with the exception of ‘Feed the Goriya’ rooms, which will still have this barrier.

If this rule is disabled, the current message will remain onscreen whenever the next string is ‘0’, until an item is picked up. Note that while picking up an item removes the string, it may not remove the Guy Barrier depending on whether or not ‘Items Disappear During Hold-Up’ is checked and depending on whether or not picking up an item is what solves the Guy Room.

QR qr_SUBSCREENOVERSPRITES = 123

‘Subscreen Appears Above Sprites’

If enabled, the subscreen is drawn above Layer 6, and the use of Layer 7 is enabled. If disabled, the subscreen is drawn above layer 4 but below flying/jumping enemies, an airborne Hero, etc; and Layer 7 is not drawn.

QR qr_BOMBDARKNUTFIX = 124

‘Shielded Enemies Check Bomb’s Position Instead Of Direction’

If enabled, bomb collision with shielded enemies is checked by comparing the angle of the explosion to the enemy, and uses the direction of that angle to check if the enemy would be shielded in that direction. If disabled, the bomb will use the direction the Hero was facing when the bomb was placed when comparing if the enemy is shielded in that direction.

Please note that regardless of this Quest Rule, shielded enemies will always be shown as taking damage regardless of if they blocked it and were dealt no damage, unless the NES Fix ‘Blocked Bombs Don’t Trigger Shielded Enemies’ I-Frames’ is checked.

QR qr_LONGBOMBBOOM_DEP = 125

Deprecated.

QR qr_OFFSETEWPNCOLLISIONFIX = 126

‘Correct Offset Enemy Weapon Collision Detection’

If enabled, hit offsets of enemy weapons are changed, preventing a common exploit of the Hero standing in between two tiles to avoid getting hit by certain projectiles. If disabled, the Hero can stand in between two tiles to avoid certain projectiles.

QR qr_DMGCOMBOLAYERFIX = 127

‘Damage Combos Work On Layers 1 And 2’

Allows Damage Combos to work on Layers 1 and 2.

QR qr_ITEMSINPASSAGEWAYS = 128

‘Special Items Don’t Appear In Passageways’

If enabled, special items do not appear in passageways if a screen has both a special item and a passageways. Passageways are screen 81 on dmaps with ‘Use Caves Instead Of Item Cellars’ unchecked. If disabled, special items can appear in passageways.

QR qr_LOG = 129

‘Log Game Events To Allegro.log And Console’

Enables the logging of certain Game Events to both allegro.log and the ZC Console. Note that turning this on can result in slower performance. Logging includes:

  • Whether or not a ‘Hit All Triggers’ has been fulfilled and, if not, how many are left;

  • The Screen and Map number whenever screens are changed, along with the current Screen States of that screen;

  • The setting or unsetting of Screen States, and whether or not a Screen State Carryover happened and where it happened;

  • Any warps that happen, including what type of warp it is and where the warp took you;

  • Any items you pick up, including both the ID and the Item Name;

  • Any time the continue point is set, including what it’s been set to;

  • Any time a script creates an object, including the object’s name and its UID (not to be confused with ID);

  • and lastly, any time a script tries to reference a nonexistent object.

QR qr_FIREPROOFHERO2 = 130

‘Invincible Hero Isn’t Hurt By Own Fire Weapons’

Normally, the Hero can be hurt by their own fire weapons even if they are invincible from some source, like the clock item or scripts. Enabling this rule disables this, making them actually invincible.

QR qr_NOITEMOFFSET = 131

‘No Position Offset Of Screen Items’

If enabled, items gain a -1 Y offset to counterbalance a +1 Y offset they would normally otherwise have.

QR qr_ITEMBUBBLE = 132

‘Fairy Rings Remove Item Jinxes’

If enabled, fairy ring flags will heal item jinxes when the Hero steps on them. This used to also affect potions and triforce pieces, but this behavior has since been relocated to the respective item flags.

QR qr_GOTOLESSNOTEQUAL = 133

‘Old GOTOLESS Behavior’

If enabled, the ZASM GOTOLESS will return true if less or equal than the compared value. If disabled, it will only return true if it’s less than the compared value.

QR qr_LADDERANYWHERE = 134

‘Allow Ladder Anywhere’

If enabled, the ladder can be used anywhere, and the screen flag ‘Toggle ‘Allow Ladder’’ will disable the ladder on the screen instead of enabling it. If disabled, only screens with ‘Toggle ‘Allow Ladder’’ and screens on dungeon dmaps allow the use of the Ladder.

QR qr_HOOKSHOTLAYERFIX = 135

‘Hookshot/SwitchHook Combos Work On Layers 1 And 2’

Allows the Hookshot/SwitchHook to grab onto combos on Layers 1 and 2.

QR qr_REPLACEOPENDOORS = 136

‘Hardcoded open doors’

If this is enabled, Open Doors in NES Dungeon screens will replace the tiles in the door position with the open door tiles. With this disabled, you can have different tiles occupy the Open Door space.

QR qr_OLDLENSORDER = 137

‘Old Lens Drawing Order’

If enabled, Lens hints will draw on layer 0 and hide Layer 1 and 2 if there is a secret on that combo. If disabled, hints will draw above Layer 2 without hiding Layers 1 and 2.

QR qr_NOFAIRYGUYFIRES = 138

‘No Fairy Guy Fires’

If enabled, Fairy Guys will not have fires, and will not block the upper portion of the screen.

QR qr_SCRIPTERRLOG = 139

‘Log Script Errors To Allegro.log And Console’

If enabled, various script errors are logged to Allegro.log and the ZC Console. The list of what exactly is logged is too long to list here, but it includes errors like arrays being too small, invalid arguments being passed, ZASM overflow, etc.

QR qr_TRIGGERSREPEAT = 140

‘Continuous Step Triggers’

If enabled, step triggers that change to another step trigger will trigger without you needing to step off them. Normally, step triggers have a safety feature where if you step on them, you cannot step on another step trigger in that position until you move onto a different position. This rule disables that behavior, allowing you to keep triggering step triggers that appear under you without moving off of it.

QR qr_ENEMIESFLICKER = 141

‘Enemies Flicker When Hit’

If enabled, all enemies flicker when they take damage instead of flashing. Does not apply to Ganon-type enemies.

QR qr_OVALWIPE = 142

‘Oval Opening/Closing Wipes’

Changes the animation going to/from full black when entering caves or starting the game. If multiple are selected, it will be chosen randomly between the ones that are selected. If none are selected, the Z1 opening is used. This opening animation has an oval cut out from the black expand either outwards or inwards, recreating LTTP’s opening and game over screen.

QR qr_TRIANGLEWIPE = 143

‘Triangle Opening/Closing Wipes’

Changes the animation going to/from full black when entering caves or starting the game. If multiple are selected, it will be chosen randomly between the ones that are selected. If none are selected, the Z1 opening is used. This opening animation has a rapidly spinning triangle cut out from black expand either outwards or inwards.

QR qr_SMASWIPE = 144

‘Super Mario All-Stars Opening/Closing Wipes’

Changes the animation going to/from full black when entering caves or starting the game. If multiple are selected, it will be chosen randomly between the ones that are selected. If none are selected, the Z1 opening is used. This opening animation recreates the Super Mario All Stars wipe; a bunch of mini triangles in a diamond pattern expanding and cutting out the black.

QR qr_NOSOLIDDAMAGECOMBOS = 145

‘No Solid Damage Combos’

Disables solid damage combos. You can only take damage by stepping on a walkable damage combo. Note that this does not affect solid sideview damage combos that you step on, you will still take damage from those even if this rule is on.$#0#361$

QR qr_SHOPCHEAT = 146

‘Draining Rupees Can Still Be Spent’

If enabled, you can spend rupees while they are draining, even if after the drain would finish you’d be unable to afford the shop item. As an example, if you have 500 rupees and you buy a 300 rupee item, you’d normally be left with 200 rupees; but if the Hero is fast enough, they can buy an item with their still-draining money, possibly buying an item worth more than the 200 rupees they’d be left with.

If disabled, shops will check both your rupee count and your rupee drain amount to make sure you can afford whatever the Hero is buying.

QR qr_HOOKSHOTDOWNBUG = 147

‘Downward Hookshot Bug’

If this QR is enabled, using the hookshot downwards will offset it by 4 pixels downwards, possibly allowing it to clip through half solid combos.

QR qr_OLDHOOKSHOTGRAB = 148

‘Old Hookshot Grab Checking’

If this is enabled, the check for if a hookshot has grabbed a combo going left or right will check its Y value plus 7. If disabled, it will check its Y value plus 13. Note that the hookshot’s Y position is 3 pixels more than the Hero’s when facing left/right, and note that this rule does not affect the hookshot when travelling up or down.

QR qr_PEAHATCLOCKVULN = 149

‘Peahats Are Vulnerable When Frozen By Clocks’

If this rule is enabled, Peahats will be vulnerable when a Clock item is active. This rule only works if the rule ‘Enemies Jump/Fly Through Z-Axis’ is disabled.

QR qr_VERYFASTSCROLLING = 150

‘Very Fast Scrolling’

Greatly increases Screen Scrolling speed, making the screen scrolling 16 pixels per frame in all directions when scrolling.

QR qr_OFFSCREENWEAPONS = 151

‘Weapons With No Collision Detection Move Offscreen’

If enabled, weapons with no collision won’t be killed if they move offscreen. If disabled, they’ll be killed when they move offscreen.

QR qr_BROKENSTATUES = 152

‘No Statue Minimum Range Or Double Fireballs’

If enabled, statues will still fire at the Hero even if the Hero is close. Statues also have a 1 in 16 chance to double shoot if enabled, with the second shot being 4 pixels to the left. If disabled, statues cannot double shoot, and they have a minimum range where they won’t fire if the Hero is within 24 pixels of the statue.

QR qr_BOMBCHUSUPERBOMB = 153

‘Use Super Bomb Explosions for Explode on Contact’

If enabled, enemies that explode on contact (like bombchus) will use super bomb explosions. If disabled, they will use regular bomb explosions.

QR qr_ITEMPICKUPSETSBELOW = 154

‘Old Special Room Screenstate Detection’

If enabled, Guy Rooms are flagged with mITEM instead of mSPECIALITEM if they are outside of a cave screen. This means that they set the Screen Item state, and collecting the Screen Item will remove the Guy.

QR qr_GANONINTRO = 155

‘Old Intro String in Ganon Room Behavior’

In older versions, Ganon Rooms used to call the function that reset the dmap’s intro clock. This normally wouldn’t do anything as it checks if you’ve already visited the dmap, but in certain circumstances this could allow Ganon to repeat the dmap’s intro string. Enabling this will recreate this behavior.

QR qr_MELEEMAGICCOST = 156

Deprecated.

QR qr_OLDMIRRORCOMBOS = 157

‘Broken Mirror And Sword Beam Interaction’

If enabled, the positioning of reflected sword weapons is positioned incorrectly, usually leading to it being more to the northwest.

QR qr_BROKENBOOKCOST = 158

‘Broken Magic Book Costs’

In older versions, the magic check for the Magic Book was broken. It paid the cost correctly, but if it couldn’t pay the cost, it would still create the flame and trigger fire secrets. Enabling this recreates this bug.

QR qr_OLDSIDEVIEWSPIKES = 159

‘Sideview Spike Detection Prior to 2.50.1RC3’

Sideview spikes were changed in newer 2.50 quests to be much more sensitive and check further below you, and also check the ceiling if you bonk against it. Checking this will revert them to the old collision, where they only the pixel below you and obeyed damage combo sensitivity, but will no longer check the ceiling above you when bumping into the ceiling. Note that if you have ‘Better Sideview Damage Combo Detection’ enabled, the only thing this rule affects is the ceiling portion of the rule.

QR qr_OLDINFMAGIC = 160

‘Infinite Magic Prevents Items From Draining Rupees’

Recreates a bug where infinite magic would skip the entire pay cost check, even if the counter it was paying was rupees. If enabled, having infinite magic means you won’t pay any rupees for rupee-costing items. If disabled, having infinite magic won’t affect rupee-costing items.

QR qr_NEVERDISABLEAMMOONSUBSCREEN = 161

‘No Ammo Required to Display Subscreen Items’

If enabled, running out of ammo will not remove relevant items from the subscreen. For example, running out of bombs will not remove the Bomb item from your inventory, and running out of Arrows will not remove the Bow and Arrow from your inventory.

Otherwise, if disabled, they will be hidden from your inventory and be unselectable if you run out of ammo, until you get more ammo for it.

QR qr_ITEMSCRIPTSKEEPRUNNING = 162

‘Item Scripts Continue To Run’

QR qr_SCRIPTSRUNINHEROSTEPFORWARD = 163

‘Scripts Draw When Stepping Forward In Dungeons’

QR qr_FIXSCRIPTSDURINGSCROLLING = 164

‘Fix Scripts Running During Scrolling’

If disabled, the waiting phase of scrolling transitions (1-32 frames) will not run all scripts, and will not clear draw commands during each frame of scrolling. It also will not run prewaitdraw scripts at the end of scrolling (for when dmap did not change).

QR qr_SCRIPTDRAWSINWARPS = 165

‘Scripts Draw During Warps’

QR qr_DYINGENEMYESDONTHURTHERO = 166

Deprecated.

QR qr_SIDEVIEWTRIFORCECELLAR = 167

‘Triforce in Cellar Warps Hero Out’

If enabled, the Triforce can warp you out of passageways if ‘Side Warp Out’ is checked on the Triforce item. Otherwise, if disabled, you will stay in the passageway after the animation ends, regardless of whether ‘Side Warp Out’ is checked.

QR qr_OUTOFBOUNDSENEMIES = 168

‘Enemies Can Go Out of Bounds (Offscreen)’

If enabled, enemies can go out of bounds without getting removed. This is mainly intended for script use and should not be turned on unless a script requires it.

QR qr_EPILEPSY = 169

‘Reduced Flashing (Epilepsy Protection)’

If enabled, certain features in the game are limited visually to make things more epilepsy-friendly for players. This includes capping the intensity of wavy effects, reducing the triforce flashes, and more. Note that players can turn on this rule themselves in the Hero; if you desire consistency, you should turn this quest rule on and design around it.

QR qr_SCRIPT_FRIENDLY_ENEMY_TYPES = 170

‘Disable Spawning Custom and Friendly Enemy Types’

Prior to 2.55 Alpha 46, Script and Friendly class enemies did not exist. This rule prevents spawning those enemies if scripts in older versions were attempting to spawn them and relied on it failing.

QR qr_SMARTDROPS = 171

‘Reroll Drops If Capacity is Zero’

If enabled, drops are rerolled if the item tries to increase a counter by 1 or more, but that counter has a max capacity of 0. A possible use for this would be having Bombs or Arrows not drop until you get the Bomb Bag or the Bow and Arrow, for example. Not to be confused with rerolling drops when that counter is full; see ‘Reroll Drops If Capacity is Full’ for that behavior.

QR qr_NO_L_R_BUTTON_INVENTORY_SWAP = 172

‘No L/R Inventory Shifting’

If enabled, L/R item switching is disabled. Normally, you can quickly change what item is selected to the B button by pressing L and R to shift the selection left and right. Enabling this disables this behavior, allowing the usage of L and R for more scripted purposes.

QR qr_USE_EX1_EX2_INVENTORYSWAP = 173

‘Ex3 and Ex4 Shift A-Button Items’

If enabled, Ex3 and Ex4 will shift the item equipped on the A button to whatever item is left or right of it on the subscreen, without having to open the subscreen. This is similar to the existing L/R B-Button shifting, but for the A button. Disabling this leaves Ex3 and Ex4 open for scripted usage.

QR qr_NOFASTMODE = 174

‘Disable Fast Mode (Uncap)’

If enabled, the built in fast-forward key (‘~’, or Tilde) is prevented from working while the quest is loaded, and FPS is forced to be throttled at 60 FPS. Many players fast forward to speed things up, especially during many built-in cutscenes such as triforce obtaining and the ending. Enabling this will disable this, which is helpful if you want to control the speed the game is played at.

QR qr_OLD_F6 = 175

‘Old (Instant) F6 Menu’

Changes how F6 works internally. With this rule on, it uses the old method, where the f6 menu is less than a frame faster. With it off, it uses the new method, which is required for F6 Scripts to work but causes the f6 to happen less than a frame later.

QR qr_BROKEN_ASKIP_Y_FRAMES = 176

‘Broken ASkipY Animation Frames’

In older versions, Combo Anim Y was bugged, where the check for if a combo is at its last tile of animation was using poor math for Combo Anim Y. This would result in combos looping much earlier than they should. This rule is auto checked for older quests, but should be left off as it may cause unintended effects.

QR qr_ENEMY_BROKEN_TOP_HALF_SOLIDITY = 177

‘Enemies Clip Through Top-Half Walkable Combos’

If enabled, enemies will only check the bottom half of a combo for its solidity when choosing where it can walk. If disabled, enemies can’t walk into a combo if any part of it is solid.

QR qr_SIDEVIEWLADDER_FACEUP = 178

‘Always Face Up On Sideview Ladders’

When enabled, the Hero will always face up when standing or walking on a sideview ladder. This does not force the Hero to face up when attacking or doing anything that isn’t walking or standing.

QR qr_ITEMS_IGNORE_SIDEVIEW_PLATFORMS = 179

‘Items Ignore Sideview Platforms’

If enabled, Items will fall through combos flagged with the ‘Sideview Platform’ flag or the ‘Sideview Ladder’ flag. If disabled, they will land on and not fall through either of these.

QR qr_DOWN_FALL_THROUGH_SIDEVIEW_PLATFORMS = 180

‘Press ‘Down’ To Fall Through Sideview Platforms’

When enabled, the Hero can press down to fall through a sideview platform flagged combo.

QR qr_SIDEVIEW_FALLTHROUGH_USES_DRUNK = 181

‘Falling Through Sideview Platforms Respects ‘Drunk’ Inputs’

If enabled, Drunk Hero pressing down (or down+jump) can accidentally fall through a sideview platform.

QR qr_DOWN_DOESNT_GRAB_LADDERS = 182

‘Pressing Down Will Not Grab Sideview Ladders’

If enabled, the Hero can’t grab onto Sideview Ladders by pressing down; only pressing up can grab sideview ladders.

QR qr_DOWNJUMP_FALL_THROUGH_SIDEVIEW_PLATFORMS = 183

‘Press ‘Down+Jump’ To Fall Through Sideview Platforms’

When enabled, the Hero can press down while using the Roc’s Feather to fall through a sideview platform flagged combo.

QR qr_OLD_SIDEVIEW_CEILING_COLLISON = 184

‘Old Sideview Ceiling Collision’

If this is enabled, the Hero’s entire hitbox is checked for hitting a ceiling, instead of just their bottom half. Additionally, it allows the Hero to clip into ceilings immediately above their heads when they start the Jump from land, as the solidity isn’t checked until they are in the air.

QR qr_0AFRAME_ITEMS_IGNORE_AFRAME_CHANGES = 185

‘Items set to 0 AFrames ignore AFrame changes’

In older versions, if an item’s AFrame value was changed via script but it was initialized with 0 AFrames, it would ignore the script change and continue as if it had a single frame. This rule emulates this behavior.

QR qr_OLD_ENEMY_KNOCKBACK_COLLISION = 186

‘Old Enemy Knockback Collision’

If enabled, you are unable to knockback an enemy if it can’t move 12 pixels in the direction it would be knocked back into. If disabled, it will check its knockback speed (which defaults to 4), see if it can move 1 frame of knockback speed in that direction, and if it can’t, won’t be knocked back.

QR qr_FADEBLACKWIPE = 187

‘Fade to/from Black Opening/Closing Wipes’

Changes the animation going to/from full black when entering caves or starting the game. If multiple are selected, it will be chosen randomly between the ones that are selected. If none are selected, the Z1 opening is used. This opening animation smoothly fades the whole palette to and from black.

QR qr_PASSIVE_SUBSCRIPT_RUNS_DURING_ACTIVE_SUBSCRIPT = 188

‘Passive Subscreen Script runs during Active Subscreen Script’

QR qr_DMAP_ACTIVE_RUNS_DURING_ACTIVE_SUBSCRIPT = 189

‘DMap Active Script runs during Active Subscreen Script’

QR qr_ANIMATECUSTOMWEAPONS = 190

Deprecated.

QR qr_WEAPONSMOVEOFFSCREEN = 191

‘Weapons Move Offscreen (Buggy, use at own risk)’

If enabled, weapons can go out of bounds without getting removed. This is mainly intended for script use and should not be turned on unless a script requires it. This can also cause certain issues with weapon types that only allow one onscreen at a time, such as sword beams and etc.

QR qr_CHECKSCRIPTWEAPONOFFSCREENCLIP = 192

‘Check Clip for Custom / Script Type Weapons on Screen Edge’

If enabled, LW_SCRIPT and EW_SCRIPT weapons are killed earlier before hitting the edge of the screen.

QR qr_SHORTDGNWALK = 193

‘1.92 Dungeon Autowalk Speed’

If enabled, the Hero autowalks a few pixels less into dungeon screens than he usually does.

QR qr_SCRIPT_WEAPONS_UNIQUE_SPRITES = 194

Deprecated.

QR qr_ANGULAR_REFLECTED_WEAPONS = 195

‘Prisms Reflect Angular Weapons At Angles’

If enabled, Prisms will reflect and duplicate angular weapons, creating new weapons at angles perpendicular to the angle of the original weapon. If disabled, they will reflect at regular directions instead of at angles.

Note that this behavior is broken and undefined if ‘’Prisms Reflect Angular Weapons’ Uses Broken Logic’ is checked.

QR qr_MIRRORS_USE_WEAPON_CENTER = 196

‘Mirrors Use Weapon Center for Collision’

If enabled, mirror/prism combos activate when the center of a weapon hits them, instead of when the edge hits them.

QR qr_CUSTOMCOMBOSLAYERS1AND2 = 197

‘Custom Combos Work On Layers 1 And 2’

If enabled, Layers 1 and 2 will also be checked for custom triggers (‘Triggers’ tab in the Combo Editor). Only affects weapon trigger types.

QR qr_BUSHESONLAYERS1AND2 = 198

‘Slash Combos Work On Layers 1 And 2’

If enabled, Bushes, Flowers, Tall Grass, Generic Combos, and etc will work on Layers 1 and 2.

QR qr_NEW_HERO_MOVEMENT = 199

‘New Hero Movement’

Alters the Hero’s movement; with this enabled, movement includes decimal precision, diagonal movement is ‘smoother’, and the Hero’s speed can be adjusted using ‘Hero->Step’ via ZScript, as well as the ‘Hero Step’ option in ‘Init Data’.

QR qr_DISABLE_4WAY_GRIDLOCK = 200

‘Disable 4-Way Movement’s Gridlock’

If enabled, disables the built in Hero gridlock. This does not allow the Hero to move diagonally, but it does allow them to change direction when not aligned with the 8x8 pixel grid.

QR qr_NEW_COMBO_ANIMATION = 201

‘New Combo Animation’

Internally changes how Combo Animation is handled. Required for combodata->OriginalTile.

QR qr_OLD_STRING_EDITOR_MARGINS = 202

‘Old String Margins’

If enabled, disables the border spacing of strings and allows strings to extend past the bottom of the message box.

QR qr_NO_OVERWRITING_HOPPING = 203

‘Don’t allow overwriting hopping action’

QR qr_DUNGEON_DMAPS_PERM_SECRETS = 204

‘Allow permanent secrets on Dungeon-type dmaps’

If enabled, Dungeon-type DMaps can have secrets be permanent. Normally Dungeon DMaps are hardcoded to not allow permanent secrets to mimic Zelda 1, but the Temp Secrets screen flag makes this behavior not only irrelevant, but a design hindrance. Enabling this will remove this hardcode and let Dungeon DMaps have permanent secrets.

QR qr_STRING_FRAME_OLD_WIDTH_HEIGHT = 205

‘Old String Frame Width/Height’

If enabled, all strings default to 25x4 as opposed to 26x5. Enabled by default for 2.50 quests and below.

QR qr_NO_SCROLL_WHILE_IN_AIR = 206

‘No Scrolling Screen While In Air’

If enabled, you cannot scroll the screen while in midair. Normally the Roc’s Feather is a nightmare to design around as you can jump over water and pits, scroll the screen, and set your respawn point over top of a pit, or even sequence break where you aren’t supposed to by drowning in water on the next screen, and jumping again after respawning. Enabling this will prevent you from changing screens while jumping or otherwise in the air, allowing you to design around the feather easier.

QR qr_INSTANT_RESPAWN = 207

‘Instant Reload On Death’

If enabled, dying will reload your last save immediately after the death animation finishes, losing all progress since the last save. Having both this and Instant Continue on Death enabled will cancel each other out.

QR qr_BROKEN_OVERWORLD_MINIMAP = 208

‘Overworld Minimap Ignores Map Item’

If enabled, the overworld minimap for possessing the dungeon map is unused, and the graphic used will always be the dungeon map-less version. This Quest Rule only exists to be turned on automatically for old quests.

QR qr_NO_STUNLOCK_BLOCK = 209

‘Weapons Cannot Stunlock Enemies (block)’

If enabled, enemies that are already stunned block any further stunning attacks. This prevents re-stunning them to keep them stunlocked.

QR qr_GREATER_MAX_TIME = 210

‘Higher Maximum Playtime’

Bumps up the Max Playtime from 99 hours, 5 minutes, and 54 seconds, to 9000 hours.Has no downsides, is only here for compatibility sake.

QR qr_BROKEN_RING_POWER = 211

‘Old (Broken) Ring Power Maths’

If enabled, uses the old buggy math for negative powered ring weapons; the old math accidentally had double negatives, which turned negative values back into positive values. If disabled, the fixed behavior is used, which allows for proper negative defense (negative defense meaning the Hero takes more damage). This rule exists only to be enabled automatically for old quests.

QR qr_NO_OVERWORLD_MAP_CHARTING = 212

‘Overworld DMaps Do Not Chart Progress’

Uses old (nonexistent) behavior for overworld charting. If enabled, you can’t use dmapdata->Charted on overworlds. If disabled, you can use dmapdata->Charted, and the Large Map subscreen item will chart places you’d been if an overworld dmap uses that subscreen.

QR qr_DUNGEONS_USE_CLASSIC_CHARTING = 213

‘Dungeon DMaps Use Classic Charting’

Uses old internal charting behavior for dungeons. Disabled for all new quests; it’s only here to be turned on in older quests in the case it breaks something. Affects dmapdata->Charted on dungeon dmaps.

QR qr_ARROWS_ALWAYS_PENETRATE = 214

‘Arrows Always Penetrate’

If enabled, arrows will always penetrate enemies, regardless of if they belong to an arrow item with the ‘Penetrate Enemies’ flag checked or not.

QR qr_SWORDBEAMS_ALWAYS_PENETRATE = 215

‘Swordbeams Always Penetrate’

If enabled, swordbeams will always penetrate enemies, regardless of if they belong to a sword item with the ‘Penetrate Enemies’ flag checked or not.

QR qr_SET_XBUTTON_ITEMS = 216

‘Allow Setting X Button Items’

If enabled, allows setting items to the X (Ex1) button. If disabled, the X/Ex1 button has no usage outside of scripting.

QR qr_SMARTER_WATER = 217

‘New Water Collision’

Internally changes how water is checked to allow for easier feature additions. It also allows the Hero to disembark out of water onto an FFC or Bridge combo. ‘Water Works On Layer 1/Layer 2’ relies on this Quest Rule.

QR qr_NO_HOPPING = 218

‘Disable LA_HOPPING’

Disables the transition state when entering/exiting walkable water where the Hero walks for a few frames without any Hero control. This transition state, also known as LA_HOPPING, is a major source of frustration among players not just for an unneccesary loss of control, but also because it has a frequent habit of glitching you through walls without your control and softlocking you. Note that LA_HOPPING is still enabled in certain necessary cases, such as when entering or exiting solid water.

QR qr_NO_SOLID_SWIM = 219

‘Can’t Swim In Solid Water’

If enabled, prevents swimming in solid water. Normally, when disabled, you can swim in walkable water (only if ‘Hero Drowns in Walkable Water’ is checked) and solid water (which requires pushing against it and triggers the LA_HOPPING state). Because of this, you could never have partially solid water. This changes it so only walkable water is swimmable, allowing you to have partially swimmable water.

QR qr_WATER_ON_LAYER_1 = 220

‘Water Works On Layer 1’

Allows water to work on Layer 1. Water placed on Layer 1 acts as a Bridge combo, overwriting the solidity/properties of combos placed below it. Requires ‘New Water Collision’

QR qr_WATER_ON_LAYER_2 = 221

‘Water Works On Layer 2’

Allows water to work on Layer 2. Water placed on Layer 2 acts as a Bridge combo, overwriting the solidity/properties of combos placed below it. Requires ‘New Water Collision’

QR qr_SHALLOW_SENSITIVE = 222

‘New Shallow Water Detection’

When enabled, Shallow Water will use the same collision used to check if the Hero should swim/drown. If disabled, you can get situations where you’re swimming but the shallow water graphic displays.

QR qr_SMARTER_SMART_SCROLL = 223

‘Fixed Smart Scrolling’

Fixes the many, many bugs with Smart Scrolling. Solidity on layers is now respected, Secret states and the like are now obeyed, and it now checks the Hero’s entire hitbox instead of the upperleft most corner.

QR qr_INSTANT_CONTINUE = 224

‘Instant Continue on Death’

If enabled, dying will respawn you immediately after the death animation finishes, skipping the Game Over screen. Having both this and Instant Reload on Death enabled will cancel each other out.

QR qr_NONHEAVY_BLOCKTRIGGER_PERM = 225

‘Block Triggers Are Perm For Non-Heavy Blocks’

If enabled, push blocks will set the secret screen state when triggering secrets. If disabled, the secrets will reset when you leave and return to the screen. Note that Heavy push blocks already set the secret screen state even with this disabled.

QR qr_SET_YBUTTON_ITEMS = 226

‘Allow Setting Y Button Items’

If enabled, allows setting items to the Y (Ex2) button. If disabled, the Y/Ex2 button has no usage outside of scripting.

QR qr_CORRECTED_EW_BRANG_ANIM = 227

‘Scripted and Enemy Boomerangs Have Corrected, Non-Hardcoded Animation’

If enabled, Script-created and Enemy-created boomerangs use the same animation as other weapons.

If disabled, they will use one of two hardcoded animations depending on whether or not ‘BS-Zelda Animation Quirks’ is checked or not.

If ‘BS-Zelda Animation Quirks’ is enabled, it will use one tile and just flip it, with it alternating between no flip (flip of 0), vertical flip (flip of 2), vertical and horizontal flip (flip of 3), and lastly horizontal flip (flip of 1); alternating every 4 frames through 4 different flips for an animation that lasts 16 frames.

If ‘BS-Zelda Animation Quirks’ is disabled, it will use a combination of 3 different tiles and different flip states to get an animation that has 8 different ‘tiles’/frames that it alternates between every 2 frames, for an animation that, again, lasts 16 frames total. The exact offset from the original tile and the flip it uses is complicated, but will be listed below in the format of ‘({offset from o_tile}, {flip value})’; in which {offset from o_tile} is the tile difference between the tile used and the sprite’s o_tile, and {flip value} is the value of the flip, in which flip of 0 is no flip, flip of 1 is horizontal, 2 is vertical, and 3 is both horizontal and vertical.

The exact offsets and flip values are, as follows: (0, 0), (1, 0), (2, 0), (1, 1), (0, 1), (1, 3), (2, 2), (1, 2).

Again, none of this matters if you have this rule enabled, as enabling this rule will disable these hardcoded values, and will allow you to use the same animation system as every other weapon. If looking for the Hero-created weapons version of this, look at the boomerang itemclass.

QR qr_SCRIPT_WRITING_HEROSTEP_DOESNT_CARRY_OVER = 228

‘Script writes to Hero->Step don’t carry over’

QR qr_OVERHEAD_COMBOS_L1_L2 = 229

‘Overhead Combos work on Layers 1 and 2’

If enabled, Overhead Combos placed on Layers 1 and 2 will still draw over Layer 4.

QR qr_ALLOW_EDITING_COMBO_0 = 230

‘Allow Editing Combo 0’

Allows the editing of Combo 0 in the editor. Combo 0 is assumed to be empty space at all times and is what’s used by default on newly created screens or layers. Setting it to anything but completely walkable will cause very buggy behavior. To prevent users from accidentally causing bugs by editing Combo 0, Combo 0 was locked from being edited. If this quest rule is enabled, you are able to edit Combo 0, though it is *not* recommended.

QR qr_OLD_CHEST_COLLISION = 231

‘Old Chest Collision’

Enabling this rule brings back the old chest behavior. The old chest behavior required the Hero to be below the chest facing up (or, if the screen was sideview, to the side of the chest facing left or right, but only if the chest was half solid and the Hero was attempting to open it from the side it was walkable) and walk into it for a few frames. If this QR is disabled, the new chest collision is enabled. The new collision allows you to customize which directions the chest is openable in the combo editor, as well as letting the Hero use a defined button to open the chest (or the old behavior of walking into the chest if set). These new features are not available if this rule is enabled.

QR qr_AUTOCOMBO_LAYER_1 = 232

‘Auto Combos Work On Layer 1’

If enabled, Autowarps and Automatic Triggers will work on Layer 1.

QR qr_AUTOCOMBO_LAYER_2 = 233

‘Auto Combos Work On Layer 2’

If enabled, Autowarps and Automatic Triggers will work on Layer 2.

QR qr_TRUEFIXEDBOMBSHIELD = 234

‘Blocked Bombs Don’t Trigger Shielded Enemies’ I-Frames’

If enabled, shielded enemies will not be shown as taking damage when they block an explosion and take 0 damage. If disabled, they will appear to be damaged whenever an explosion hits them, even if they are not actually being damaged because of their shield blocking the explosion.

QR qr_BOMBSPIERCESHIELD = 235

‘Bombs Pierce Enemy Shields’

If enabled, bombs will ignore enemy shields and deal damage to the enemy, if the enemy’s bomb defense allows it to be hurt by bombs. Otherwise, if disabled, bombs are subject to being blocked by the enemy’s shield; how they are blocked depends on the NES Fixes ‘Shielded Enemies Check Bomb’s Position Instead Of Direction’ and ‘Blocked Bombs Don’t Trigger Shielded Enemies’ I-Frames’.

QR qr_BROKEN_HORIZONTAL_WEAPON_ANIM = 236

‘Broken Horizontal Weapon Animation’

In older versions, weapon types with different left/right facing tiles, such as Arrows or the Sword, had a bug where if their sprite was animated, it would only use the default tile and its animation, instead of using the left/right tile and its intended animation. Enabling this rule brings back this bug.

QR qr_NEW_DARKROOM = 237

‘New Dark Rooms’

If enabled, Dark Rooms behave less like Z1 and more like LttP/Minish Cap, having light circles around torches and giving a customizeable spotlight around the Hero. If disabled, Z1-styled dark rooms are used, which only darken the screen until lit up with a candle.

QR qr_NEWDARK_L6 = 238

‘New Darkness Draws Under Layer 7’

If enabled, the new dark rooms will draw under layer 7, allowing scripts to draw over dark rooms by drawing to Layer 7. If disabled, scripts are never able to draw above the new dark rooms.

QR qr_ENEMIES_SECRET_ONLY_16_31 = 239

‘Enemies->Secret only affects flags 16-31’

If this rule is enabled, Enemies->Secret will only trigger Secret Flags 16 through 31. It will not trigger weapon triggers such as burn triggers or bomb triggers.

QR qr_SCREEN80_OWN_MUSIC = 240

‘Item Cellars/Passageways/Caves use own music’

If enabled, screen 80/81 will play a midi if one is assigned to screen 80/81.

QR qr_OLDCS2 = 241

‘Old CSet2 Handling’

If this is enabled, you can access csets 12 through 15 via a combo’s cset2 value. However, because these are reserved and prone to change with different editor themes, this functionality was removed. If this rule is disabled, only CSets 0-11 are allowed, and the wrapping is changed as well.

QR qr_HARDCODED_ENEMY_ANIMS = 242

‘Hardcoded Shadow/Spawn/Death anim frames’

If this is enabled, enemies spawning, shadow, and death animations are hardcoded. They will use hardcoded aframe and aspeed values regardless of what they are set as in the sprite editor. If this is disabled, these sprites will obey the values set in their respective sprite data. Note that this rule also affects the ‘death poof’ the Hero does when they die!

QR qr_OLD_ITEMDATA_SCRIPT_TIMING = 243

‘Old Itemdata Script timing’

Changes the timing of itemdata scripts. If this is disabled, they run immediately after the Hero’s internal code. If this is enabled, it will run immediately before.

QR qr_SIDESWIM = 244

‘Sideview Swimming’

Enables Sideview Swimming. With this enabled, the Hero gains a whole set of new actions and custom physics when in water placed in Sideview. If disabled, water in Sideview acts very oddly, with gravity still applying.

QR qr_SIDESWIMDIR = 245

‘Hero Faces Left/Right While Sideview Swimming’

When enabled, the Hero can only face Left and Right in sideview water.

QR qr_PUSHBLOCK_LAYER_1_2 = 246

‘Pushblocks Work On Layer 1 And 2’

If enabled, pushblocks can be placed on Layers 1 and 2 and function. Note that the push order goes from top to bottom.

QR qr_NEWDARK_SCROLLEDGE = 247

‘New Darkroom Lanterns Cross Screen Boundary’

When in a dark room with ‘New Dark Rooms’ enabled, lanterns will light across the boundary between screens *during scrolling*.

QR qr_STEPTEMP_SECRET_ONLY_16_31 = 248

‘Step->Secrets (Temp) only affects flags 16-31’

If this rule is enabled, Step->Secrets (Temp) will only trigger Secret Flags 16 through 31. It will not trigger weapon triggers such as burn triggers or bomb triggers.

QR qr_ALLTRIG_PERMSEC_NO_TEMP = 249

‘’Hit All Triggers->Perm Secret’ doesn’t trigger temp secrets’

The screen flag ‘Hit All Triggers->Perm Secret’ will only set the secret state of the screen, not trigger secrets immediately

QR qr_HARDCODED_LITEM_LTMS = 250

‘Hardcoded LItem/Bomb/Clock/Magic Tile Mods’

Tile modifiers for level items, bombs/superbombs, clocks, and magic containers are (incorrectly) hardcoded to their classic item IDs

QR qr_NO_BOTTLE_IF_ANY_COUNTER_FULL = 251

‘Bottles can’t be used with any maxed counter’

If enabled, bottled items cannot be used if ANY of the 3 (non-None) counters it fills are already at maximum capacity.

Otherwise, bottled items can be used if AT LEAST ONE of its counters is not full.

QR qr_LIGHTBEAM_TRANSPARENT = 252

‘Light Beams draw Transparently’

Light Beams from Spotlight combos are transparently drawn.

QR qr_CANDLES_SHARED_LIMIT = 253

‘Candle use limit is shared’

Candle limited uses per screen is shared between candles

QR qr_OLD_RESPAWN_POINTS = 254

‘Classic Respawn Points’

Respawn points on drowning/pitfall will always be the screen entry point with this checked.

If unchecked, the respawn will be the last safe place the Hero has stood, including across screens.

QR qr_HOOKSHOTALLLAYER = 255

‘Hookshot/SwitchHook Combos Work On All Layers’

Allows the Hookshot/SwitchHook to grab onto combos on any layer.

QR qr_ANONE_NOANIM = 256

‘Enemies with ‘None’ animation don’t obey OriginalTile changes’

Enemies with the ‘None’ animation style will not reset their displayed tile to their ‘OriginalTile’ every frame if this is enabled.

QR qr_BLOCKHOLE_SAME_ONLY = 257

‘Block holes / triggers only trigger on same layer as block’

If enabled, pushblocks will only trigger block holes and block triggers on the same layer.

QR qr_SWITCHOBJ_RUN_SCRIPT = 258

‘Switchhooked Objects Run Scripts’

If enabled, the scripts of objects grabbed by the switchhook will not be paused.

QR qr_ITEMCOMBINE_NEW_PSTR = 259

‘’Upgraded’ items play upgraded pickup string’

If enabled, collecting an item with ‘Upgrade When Collected Twice’ will play the pickup string from the ‘upgraded’ item, not the base item.

QR qr_ITEMCOMBINE_CONTINUOUS = 260

‘’Upgraded’ items chain continuously’

If enabled, the ‘Upgrade When Collected Twice’ flag will be checked for the upgraded item from the same flag; allowing full progressive item chains.

QR qr_SCC_ITEM_COMBINES_ITEMS = 261

‘SCC/Bundle Item handles ‘Upgraded’ Items’

Granting an item via an Item Bundle or SCC will handle the ‘Upgrade When Collected Twice’ behavior.

QR qr_SCROLLING_KILLS_CHARGE = 262

‘Scrolling Cancels Charge’

If enabled, scrolling screens while charging (i.e. spin attack) will not keep the charge on the new screen.

QR qr_CUSTOMWEAPON_IGNORE_COST = 263

‘Custom Weapon / Ice Rod Bugged Cost’

Custom Weapon and Ice Rod itemclasses will not charge the use cost set in the item editor if this is enabled.

QR qr_BLOCKS_DONT_LOCK_OTHER_LAYERS = 264

‘Block Triggers improved locking’

Block triggers will not lock blocks in place as they normally do. Blocks on the same layer as the trigger will lock normally, but blocks on other layers will not lock until all triggers are covered (thus triggering secrets). At this time, ALL blocks on triggers will click into place.

QR qr_SCC_GOTO_RESPECTS_CONTFLAG = 265

‘Goto SCCs respect ‘continuation’ flag’

If enabled, a ‘Goto’ type String Control Code that switches to a string with the ‘Is continuation of previous string’ flag set will respect this, displaying the text from that string in the SAME message box, rather than a fresh one.

QR qr_BROKEN_KEEPOLD_FLAG = 266

‘Broken ‘Keep Lower Level Items’’

If enabled, ‘Keep Lower Level Items’ acts as always checked for all items.

QR qr_KEEPOLD_APPLIES_RETROACTIVELY = 267

‘’Keep Lower Level Items’ applies retroactively’

If enabled, then when you have a higher-level item which does not have ‘Keep Lower Level Items’ checked, lower-level items will be removed when obtained.

QR qr_PASSIVE_ITEM_SCRIPT_ONLY_HIGHEST = 268

‘Only highest level item passive script runs’

If you have multiple items of the same itemclass with passive item scripts, only the highest-level item’s script will run. In case of tie, all tied-highest scripts will run.

QR qr_OLD_HALF_MAGIC = 269

‘Old Half Magic’

If enabled, half magic rooms always set the multiplier to 1, instead of halving its’ previous value.

QR qr_LEVEL_RESTART_CONT_POINT = 270

‘Restarting Level always goes to DMap continue point’

Effects like Wallmasters and Divine Escape will go back to the DMap’s continue point, rather than the last entrance point.

QR qr_SUBSCR_OLD_SELECTOR = 271

‘Old Subscreen Selector’

If disabled, the subscreen selector will stretch to fit the item it is selecting.

QR qr_OLD_FAIRY_LIMIT = 272

‘Old fairy spawn limit’

If this rule is enabled, there is a limit of one fairy onscreen that enemies and combos can drop.

QR qr_FAIRYDIR = 273

‘Fairies spawn with random direction’

If enabled, fairies will spawn facing one of 8 directions randomly. If disabled, fairies will spawn facing up, the default direction.

QR qr_ARROWCLIP = 274

‘Arrows clip farther into dungeon walls’

If this rule is enabled, arrows will still check for secrets even while they are ‘blinking out’. This lets them hit triggers on top of blocking combos and on the edges of dungeon walls.

QR qr_CONT_SWORD_TRIGGERS = 275

‘All sword triggers are continuous’

If this rule is enabled, all sword triggers are treated as continuous. That means if a sword trigger becomes another sword trigger and the sword still occupies the space, it will trigger the new trigger too. If a sword trigger is not continuous and it becomes another trigger, you will need to slash the sword again to trigger the new trigger.

QR qr_OLD_210_WATER = 276

‘Ladder takes precedence over North and South water’

This rule changes whether the ladder or the flippers takes priority when entering water from below or above. If this rule is enabled, the ladder takes priority. If this rule is disabled, the flippers take priority. Note that flippers always take priority when entering into water from the left or right, regardless of this rule.

QR qr_8WAY_SHOT_SFX_DEP = 277

Deprecated.

QR qr_COPIED_SWIM_SPRITES = 278

‘BS Zelda uses walking sprites for swimming’

In older versions of ZC, BS Zelda animation didn’t use swimming sprites, and thus defaulted to walking sprites. This QR simulates this behavior

QR qr_WRONG_BRANG_TRAIL_DIR = 279

‘Fire boomerang sparkles always face up’

In older versions of ZC, Fire Boomerang sparkles always faced up due to not having a direction set. This QR re-enables this behavior.

QR qr_192b163_WARP = 280

‘Wavy and Cancel warps are swapped’

Swaps Wavy and Cancel warps. Supposedly this was done temporarily in 1.92 Beta 163, so this quest rule is automatically activated when playing those quests.

QR qr_210_WARPRETURN = 281

‘Old Warping Onto Warp Protection’

Changes the code that prevents you from being warped when you warp onto a warp to the 2.10 logic. Some quests, such as Ballad of a Bloodline, warp you onto a step trigger in an enclosed space. With this rule off, those quests will softlock.

QR qr_LESS_AWFUL_SIDESPIKES = 282

‘Better Sideview Damage Combo Detection’

When enabled, damage combos in sideview will only do their check if the Hero is standing on solid ground and is mostly on the damage combo. This does not affect the check for bonking your head on a damaging ceiling; see ‘Sideview Spike Detection Prior to 2.50.1RC3’ for that.

QR qr_OLD_LADDER_ITEM_SIDEVIEW = 283

‘Jittering In Sideview With Ladder Item’

In old versions, there was a bug where possessing the ladder item would let you jitter upwards in sideview. Originally, this happened because someone attempted to add ladder compatibility in sideview and left it half-finished. Checking this rule will emulate this behavior.

QR qr_OLD_SECRETMONEY = 284

‘Renewable Secret Money Rooms Outside Caves’

If enabled, Secret Money rooms will never be flagged as collected unless they are inside a Screen 80 Cave or Item Cellar. This was a bug that existed until 2.50 RC1.

QR qr_OLD_DOORREPAIR = 285

‘Renewable Door Repairs Rooms Outside Caves’

If enabled, Door Repair rooms will never be flagged as collected unless they are inside a Screen 80 Cave or Item Cellar. This was a bug that existed until 2.50 RC4.

QR qr_OLD_POTION_OR_HC = 286

‘Renewable Potion Or Heart Container Rooms Outside Caves’

If enabled, the Red Potion or Heart Container room will never be flagged as collected unless it is inside a Screen 80 Cave or Item Cellar. This was a bug that existed until 2.50.1 Final. Note that this does not refer to the ‘Take Only One’ Item room; that is a different room type.

QR qr_NO_LANMOLA_RINGLEADER = 287

‘Lanmolas can’t be ringleaders’

If enabled, Lanmolas are unable to be ringleaders. This was a bug introduced in 2.50 RC1, and was fixed in 2.55 Alpha 100.

QR qr_HARDCODED_BS_PATRA = 288

‘Hardcoded BS Patras’

If enabled, BS Patras are incredibly hardcoded and disobey most of the enemy editor. If left off, they are just a branch of the regular Patra enemy and are able to use anything a regular Patra can use.

QR qr_PATRAS_USE_HARDCODED_OFFSETS = 289

‘Hardcoded Patra Inner Eye offsets’

If enabled, patras use hardcoded offsets from the main body for their inner eyes. If disabled, they will use the enemy’s ‘special tile’ to figure out what tiles to use. When disabled, the special tile for patras should be set to the first inner eye tile. When enabled, the tile used will be the next row of tiles after the main body tiles, Which is of variable length depending on whether or not the Center Eye shoots or not.

QR qr_BROKEN_BIG_ENEMY_ANIMATION = 290

‘Broken ‘Big enemy’ animation style’

If enabled, Big Enemies will have buggy undefined behavior with large tilewidth/tileheight custom enemies. Disabling this will result in more expected behavior.

QR qr_BROKEN_ATTRIBUTE_31_32 = 291

‘Broken Attribute 31/32’

Prior to this compat rule existing, enemy attribute 31 was set by attribute 32, and attribute 32 returned random memory. Though allowing it to return random memory is a security risk (and thus isn’t allowed), this rule recreates this behavior as safely as possible by having attribute 32 return 0 and attribute 31 be set to attribute 32.

QR qr_CAN_PLACE_GANON = 292

‘Allow Placing Ganon as Screen Enemy’

If enabled, Ganon-type enemies are allowed to spawn when placed as a screen enemy. If disabled, Ganon can only be spawned by Ganon type rooms or scripts.

QR qr_CAN_PLACE_TRAPS = 293

‘Allow Placing Traps as Screen Enemies’

If enabled, Trap-type enemies are allowed to spawn when placed as a screen enemy. If disabled, Traps can only be spawned by Trap flags or scripts.

QR qr_FIND_CLOSEST_BAIT = 294

‘Enemies check closest bait’

If enabled, enemies will check all bait on screen and home towards the closest one in range if they have hunger. If disabled, they will instead check only the oldest-placed bait on the screen.

QR qr_OLD_FLAMETRAIL_DURATION = 295

‘Old fire trail duration’

Prior to 2.55 Alpha 100, Fire Trails lasted for 640 frames by default, or a little over 10 and a half seconds. They have since been reduced to 180 frames, or 3 seconds. Enabling this will revert back to the old duration.

QR qr_PERMANENT_WHISTLE_SECRETS = 296

‘Whistle triggers can be permanent’

If enabled, whistle triggers are allowed to be permanent. This means that whistle triggers will set the secret screen state, unless ‘Screen->Secrets are Temporary’ is checked for the current screen.

QR qr_SMARTER_DROPS = 297

‘Reroll Drops If Capacity is Full’

If enabled, drops are rerolled if the item tries to increase a counter by 1 or more, but that counter is already at or above its max capacity. This would, for example, prevent arrows from dropping if you already have max arrows, potentially rerolling it with a more useful item.

QR qr_WAVY_NO_EPILEPSY = 298

‘Screen->Wavy Intensity is not affected by Epilepsy Protection’

If enabled, the intensity of wavy effects is not capped by epilepsy protection. The cap is at 2048*sin for non-epilepsy mode, and 16*sin for epilepsy. Enabling this will use the 2048 cap even in epilepsy mode.

QR qr_WAVY_NO_EPILEPSY_2 = 299

‘Screen->Wavy Speed is not affected by Epilepsy Protection’

If enabled, the speed of wavy effects is not halved by epilepsy protection. Epilepsy protection normally halves the speed of wavy effects; enabling this will bypass this behavior.

QR qr_DYING_ENEMIES_IGNORE_STUN = 300

‘Killing Stunned Enemy With Melee Weapons Won’t Hurt Hero’

If enabled, dying enemies won’t damage the Hero if they are stunned, the Hero is on top of them, and the Hero kills them with a melee weapon. Presumably this was a feature to replicate NES behavior.

QR qr_SHOP_ITEMS_VANISH = 301

‘Shop Items Disappear on Pickup’

If enabled, all items will vanish after picking up a shop item. If both this and ‘Items Disappear During Hold-Up’ are disabled, shop items will not disappear when you buy one.

QR qr_ANGULAR_REFLECT_BROKEN = 302

‘’Prisms Reflect Angular Weapons’ Uses Broken Logic’

If enabled, Angular Reflected Weapons use completely wrong code. This is only here for compatibility purposes; enabling this is liable to result in undefined behavior. Keep this disabled.

QR qr_CSET1_LEVEL = 303

‘CSet 1 is level-specific’

If enabled, CSet 1 becomes level dependent, allowing you to change it by changing the current palette.

If disabled, CSet 1 will use the Main Palette, and will remain static unless modified via script.

QR qr_CSET5_LEVEL = 304

‘CSet 5 is level-specific’

If enabled, CSet 5 becomes level dependent, allowing you to change it by changing the current palette.

If disabled, CSet 5 will use the Main Palette, and will remain static unless modified via script.

QR qr_CSET7_LEVEL = 305

‘CSet 7 is level-specific’

If enabled, CSet 7 becomes level dependent, allowing you to change it by changing the current palette.

If disabled, CSet 7 will use the Main Palette, and will remain static unless modified via script.

QR qr_CSET8_LEVEL = 306

‘CSet 8 is level-specific’

If enabled, CSet 8 becomes level dependent, allowing you to change it by changing the current palette.

If disabled, CSet 8 will use the Main Palette, and will remain static unless modified via script.

QR qr_FADECS1 = 307

‘Fade CSet 1’

When enabled, CSet 1 will also fade when in dark rooms or when scrolling. Limited only to Interpolated Fading.

QR qr_FADECS7 = 308

‘Fade CSet 7’

When enabled, CSet 7 will also fade when in dark rooms or when scrolling. Limited only to Interpolated Fading.

QR qr_FADECS8 = 309

‘Fade CSet 8’

When enabled, CSet 8 will also fade when in dark rooms or when scrolling. Limited only to Interpolated Fading.

QR qr_FADECS9 = 310

‘Fade CSet 9’

When enabled, CSet 9 will also fade when in dark rooms or when scrolling. Limited only to Interpolated Fading.

QR qr_UNBEATABLES_DONT_KEEP_DEAD = 311

‘Unbeatable enemies don’t prevent enemies from respawning’

If enabled, a screen that only has unbeatable enemies left will act as if it has 0 enemies left alive, allowing the enemies on the screen to respawn if the screen isn’t one of the last 6 unique screen visited or if the Hero has F6’d.

QR qr_NO_LEAVE_ONE_ENEMY_ALIVE_TRICK = 312

‘No ‘Leave one enemy alive’ trick’

If enabled, enemies will always return after either f6ing or if the current screen isn’t one of the last 6 unique screens visited; regardless of how many enemies are left alive. Otherwise, if disabled, the enemies will only return if you either left 0 enemies alive on the screen, or if you left and re-entered the map.

QR qr_OLD_BRIDGE_COMBOS = 313

‘Old Bridge Combo Behavior’

If enabled, Bridge Combos use the solidity box instead of the effects square to determine what sections the bridge covers. Solid portions will use the solidity of what is beneath it, while walkable portions will be walkable regardless of what is beneath it.

If disabled, the bridge will use the effects square to determine what parts should cover the below segments, regardless of whether it’s solid or not.

QR qr_BROKEN_Z3_ANIMATION = 314

‘Broken Z3 Animation’

If enabled, Z3 animation will use broken, 1 tile animation for stabbing, slashing, pounding, and charging. If disabled, Z3 animation will use the intended animation for stabbing, slashing, pounding, and charging.

QR qr_OLD_TILE_INITIALIZATION = 315

‘Old Enemy Tile Behavior with Animation (None) Enemies’

If enabled, enemies initialize their tile every frame by setting it to their O_Tile, even if they have an animation of type (none). If disabled, enemies without animation will only initialize their tile if their tile is 0; which it is when it is first created. This does not affect enemies that have an animation set.

QR qr_FLUCTUATING_ENEMY_JUMP = 316

‘Enemy->Jump Fluctuates When on Ground’

If enabled, gravity applies to enemies every other frame when they are on the ground, setting their jump value to the negative value of gravity for a frame before reverting it back to 0 the next frame. If disabled, enemy jump will not go below 0 when on the ground.

QR qr_SPRITE_JUMP_IS_TRUNCATED = 317

‘Script Sprite->Jump is Truncated’

If enabled, reading Sprite->Jump via script will return the value without the decimal portion. If disabled, the correct Sprite->Jump value will be returned.

QR qr_BUGGY_BUGGY_SLASH_TRIGGERS = 318

‘->Next Combos Ignore Trigger Flags’

If enabled, trigger flags cannot be triggered if placed on a ->Next combo type. This was a bug introduced by a poor implementation of the ‘Old Slash Combo Secret Flag Behavior’ rule. Note that this rule does nothing if ‘Old Slash Combo Secret Flag Behavior’ is enabled.

QR qr_OLD_DRAWOFFSET = 319

‘Old Quake/DrawYOffset Behavior’

If enabled, certain enemies will have their draw offsets affected by Screen->Quake when they spawn. If disabled, the offset will not be affected by Screen->Quake.

QR qr_BROKEN_DRAWSCREEN_FUNCTIONS = 320

‘Broken DrawScreen Derivative Functions’

If enabled, DrawScreenSolid, DrawScreenSolidity, DrawScreenComboFlags, DrawScreenComboIFlags, and DrawScreenComboTypes will have broken draws if a screen has layers enabled.

If disabled, these functions will not break if a layer exists on the source screen. Note that only DrawScreenSolid works properly with layers; the other functions will otherwise only take Layer 0 of the source screen.

QR qr_ENEMY_DROPS_USE_HITOFFSETS = 321

‘Enemy Drops use Hitbox for Position’

If enabled, enemies will drop their dropset item at the center of their hitbox.

If disabled, they will drop their item at the center of their tile.

QR qr_BROKEN_ITEM_CARRYING = 322

‘Broken Enemy Item Carrying’

If enabled, enemies will use the topleft corner of their tile as their item carry position when carrying an item, which might look off with large enemies. They will also not pass their Z value onto the item.

If disabled, they will use the same position as their item drop position, and will carry the item into the Z axis.

QR qr_LEEVERS_DONT_OBEY_STUN = 323

‘Leevers Still Submerge If Stunned’

If enabled, Leevers will still submerge if they are stunned. If disabled, they will not submerge while stunned, but they will unsubmerge if they are currently submerged.

QR qr_QUAKE_STUNS_LEEVERS = 324

‘Quake Hammer Stuns Leevers’

If enabled, Quake Hammer can stun Leevers. This barely does anything if ‘Leever’s Still Submerge If Stunned’ is enabled.

QR qr_GANON_CANT_SPAWN_ON_CONTINUE = 325

‘Ganon-Type Rooms Don’t Work On Continuing’

If enabled, continuing/starting the quest will not trigger Ganon Rooms.

QR qr_WIZZROBES_DONT_OBEY_STUN = 326

‘Wizzrobes Still Teleport If Stunned’

If enabled, Wizzrobes will still teleport if they are stunned. If disabled, they will not teleport while stunned, and will ‘unteleport’ if they are in the middle of teleporting.

QR qr_OLD_BUG_NET = 327

‘Old Bug Net Animation’

If enabled, the Hero won’t use slashing tiles while using the Bug Net.

QR qr_MANHANDLA_BLOCK_SFX = 328

‘Manhandla Uses Hit Sound For Center Body’

If enabled, Manhandla will play the hit sound when hitting the center body instead of the block sound.

QR qr_GRASS_SENSITIVE = 329

‘New Tall Grass Detection’

When enabled, Tall Grass will use the same collision used to check if the Hero should swim/drown. If disabled, you can get situations where you’re swimming but the tall grass graphic displays.

QR qr_BETTER_RAFT = 330

‘Less Arbitrary Dock Combos’

If enabled, the Hero will be able to raft off a dock if there is a raft flag in either of the 4 directions from the dock, regardless of direction. If disabled, the Hero can only raft if there is a raft flag in the direction they are facing when they step on the dock.

QR qr_BETTER_RAFT_2 = 331

‘More Sensitive Dock Combos’

If enabled, the collision for dock combos will only check the bottom part of the Hero’s hitbox, as opposed to the bottom and top parts of their hitbox.

QR qr_RAFT_SOUND = 332

‘Docks use Raft Item’s sound’

The raft will use the sound specified in UseSound when starting rafting, as opposed to the screen’s secret sound.

QR qr_WARPS_RESTART_DMAPSCRIPT = 333

‘Engine warps restart DMap Script’

If enabled, engine warps will restart or clear the currently running dmap script, even if you warp to the same dmap you were just on.

QR qr_DMAP_0_CONTINUE_BUG = 334

‘DMap 0 hardcoded continue’

If enabled, entering DMap 0 will set your continue point to its continue screen, even if it shouldn’t.

QR qr_SCRIPT_WARPS_DMAP_SCRIPT_TOGGLE = 335

‘Flip ‘don’t restart dmap script’ script warp flag’

If enabled, the warp flag to disable restarting the dmap script when warping to the same dmap will be flipped so that having the flag on will restart the dmap script and having it off won’t restart when warping to the same dmap.

QR qr_OLD_SCRIPTED_KNOCKBACK = 336

‘Old Scripted Knockback’

If enabled, npc->Knockback will use older logic, which had a tendency to clip enemies into walls.

QR qr_OLD_KEESE_Z_AXIS = 337

‘Old Keese Z Axis Behavior’

If enabled, Keese will barely change their z value unless over 128 pixels away from the Hero. If disabled, they will use the Z axis up to 40 pixels away and go higher up than before, but still be hittable when close to the Hero.

QR qr_POLVIRE_NO_SHADOW = 338

‘No Pols Voice/Vire Shadows with Z axis’

If enabled, Pols Voice and Vires won’t have shadows when jumping in the Z axis.

QR qr_CONVEYORS_L1_L2 = 339

‘Conveyors work on layers 1 and 2’

Conveyor combos work on layers 1 and 2. If multiple conveyors overlap, only the highest layer conveyor will apply.

QR qr_CUSTOMCOMBOS_EVERY_LAYER = 340

‘Custom Combos Work On All Layers’

If enabled, all layers will also be checked for custom triggers (‘Triggers’ tab in the Combo Editor). Only affects weapon trigger types.

QR qr_SUBSCR_BACKWARDS_ID_ORDER = 341

‘Old Subscreen Item ID order’

If enabled, the subscreen will prioritize lower-ID items when there is a ‘Level’ tie, instead of prioritizing higher-ID items like everything else in the engine.

QR qr_FASTCOUNTERDRAIN = 342

‘Fast Counter Drain’

If enabled, counters drain/refill at quadruple speed.

QR qr_OLD_LOCKBLOCK_COLLISION = 343

‘Old Lockblock Collision’

Lockblocks behave as they used to if disabled; otherwise they operate similarly to chests.

QR qr_DECO_2_YOFFSET = 344

‘Decorations -2 yoffset’

If enabled, all ‘decoration’ type objects will have a yoffset of ‘-2’ instead of ‘0’.

QR qr_SCREENSTATE_80s_BUG = 345

‘Screen->State[] 0x80 bug’

If enabled, ‘Screen->State[]’ will use an old behavior that may read the wrong screen data.

QR qr_AUTOCOMBO_ANY_LAYER = 346

‘Auto Combos Work On All Layers’

If enabled, Autowarps and Automatic Triggers will work on any layer.

QR qr_GOHMA_UNDAMAGED_BUG = 347

‘Undamaged Gohma can be hit on any side’

If enabled, the first weapon to hit a Gohma will not be blocked, regardless of where it hits.

QR qr_FFCPRELOAD_BUGGED_LOAD = 348

‘Preload FFCs don’t work on init screen’

If enabled, FFCs that ‘run on screen init’ will not run before the opening wipe on the first screen loading from the save select screen.

QR qr_SWITCHES_AFFECT_MOVINGBLOCKS = 349

‘Moving pushblock switch blocks obey switch toggle’

If enabled, when a crystal switch toggles, it will toggle any pushblocks that are currently moving, while they are moving.

QR qr_BROKEN_GETPIXEL_VALUE = 350

‘GetPixel returns color / 10000’

QR qr_NO_LIFT_SPRITE = 351

‘No lifting sprite’

If enabled, the Hero will not display a ‘lifting’ sprite.

QR qr_OLD_SIDEVIEW_LANDING_CODE = 352

‘Old Sideview Landing’

If enabled, the old code for landing in sideview will be used.

QR qr_OLD_FFC_SPEED_CAP = 353

‘FFC 128 speed cap’

If enabled, ffcs will cap to 128 speed.

QR qr_OLD_WIZZROBE_SUBMERGING = 354

‘Wizzrobes use old submerge code’

If enabled, wizzrobes will not read as ‘Submerged’ to ZScript, and will use hardcoded offsets. If disabled, relative offsets will be used, and ‘Submerged’ will read as true when vanished.

QR qr_SPARKLES_INHERIT_PROPERTIES = 355

‘Weapon Sparkles Inherit Properties’

If enabled, sparkle weapons inherit properties such as script, type, and default defense from the parent item.

QR qr_BROKENHITBY = 356

‘Broken ->HitBY UIDs’

If enabled, both Hero fire and bomb weapons won’t work with HitBy if they hurt the Hero.

QR qr_ENEMIES_DONT_SCRIPT_FIRST_FRAME = 357

‘Scripted enemies don’t run script on first frame of screen entry’

If enabled, enemies don’t run their scripts on the first frame of entering a screen.

QR qr_OLD_CONVEYOR_COLLISION = 358

Deprecated.

QR qr_SENSITIVE_SOLID_DAMAGE = 359

‘Sensitive Solid Damage Combos’

Solid damage combos only check the center of the Hero’s hitbox. Does not affect sideview damage combos you step on. Does nothing if ‘No Solid Damage Combos’ or ‘Lenient Solid Damage Combos’ is checked.$#0#145,360$

QR qr_LENIENT_SOLID_DAMAGE = 360

‘Lenient Solid Damage Combos’

Solid damage combos only check the center of the Hero’s hitbox. Does not affect sideview damage combos you step on. Does nothing if ‘No Solid Damage Combos’ is checked.$#0#145$

QR qr_NO_SIDEVIEW_SOLID_DAMAGE = 361

‘No Sideview Solid Damage’

Disables taking damage by stepping on solid sideview damage. Does not affect damage taken by walkin into solid damage combos.$#0#145$

QR qr_OLD_FFC_FUNCTIONALITY = 400

‘Old FFC Functionality’

If enabled, FFCs will lack certain functionality, such as hookshotability, switch_hookability, and ffc triggers, among other misc changes.

QR qr_OLD_SHALLOW_SFX = 401

‘Old Shallow Water SFX Attribute’

If enabled, Shallow Water will use attribytes[0] instead of attribytes[5] for its splash sound.

QR qr_BUGGED_LAYERED_FLAGS = 402

‘Bugged Layered Flags’

If enabled, flags placed on layers will ‘wrap’ at the edge of screens, causing odd behaviors.

QR qr_HARDCODED_FFC_BUSH_DROPS = 403

‘Old FFC Bush Drops’

If enabled, FFC bushes will drop a random ‘15% heart, 20% rupee’ instead of using dropset 12.

QR qr_POUNDLAYERS1AND2 = 404

‘Pound Combos Work On Layers 1 And 2’

If enabled, Pound combos will work on Layers 1 and 2.

QR qr_MOVINGBLOCK_FAKE_SOLID = 405

‘Fake-solid Pushblocks’

If enabled, pushblocks will not use ‘real’ solidity.

QR qr_NEW_HERO_MOVEMENT2 = 406

‘Newer Hero Movement’

Alters the Hero’s movement; with this enabled, most of the effects of ‘New Hero Movement’ and ‘Disable 4-Way Movement’s Gridlock’ apply, and the Hero’s collision code is newly cleaned up.$#0#199,200$

QR qr_CARRYABLE_NO_ACROSS_SCREEN = 407

‘Carryables Can’t Leave Screen’

If enabled, leaving a screen while carrying something with a Lift Glove will delete the carried object.

QR qr_NO_SCROLL_WHILE_CARRYING = 408

‘No Scrolling Screen While Carrying’

If enabled, you cannot scroll the screen while the Hero is carrying something with a Lift Glove.

QR qr_HELD_BOMBS_EXPLODE = 409

‘Lifted Bombs Explode In Hand’

If enabled, bomb lweapons that are ‘lifted’ by the Hero (currently script-only) will still tick down their fuse and explode.

QR qr_BROKEN_MOVING_BOMBS = 410

‘Broken Moving && Air Bombs’

If enabled, bombs exploding while moving will behave oddly and broken, and bomb explosions will continue obeying gravity.

QR qr_OLD_BOMB_HITBOXES = 411

‘Old Bomb Hitboxes’

If enabled, the outer ring of bombs’ hitboxes will not count for triggering combos/secrets, and giving bombs custom radii will not work.

QR qr_SCROLLWARP_NO_RESET_FRAME = 412

‘Broken scroll/warp frame issue’

If enabled, after a scroll or warp, the next frame is started mid-frame instead of from the start, possibly causing issues with things like input.

QR qr_BROKEN_RAFT_SCROLL = 413

‘Broken Scrolling Onto Raft Flags’

If enabled, scrolling the screen such that you are on a raft flag on the new screen will force rafting, even if you were not rafting before, or do not have the raft item.

QR qr_BROKEN_INPUT_DOWN_STATE = 414

‘Broken Input Down State’

If enabled: 1) the engine does not reset the internal button down state every frame. 2) setting button inputs to false (ex: Input->Button[CB_A] = false) will have no effect on button presses. 3) breaks Roc’s Feather when assigned to a button press. If disabled: button presses are eaten when scripts write to button states.

QR qr_OLD_GUY_HANDLING = 415

‘Old Guy Handling’

If enabled, several new features relating to room guys will not work, instead using the old version behaviors.

QR qr_FREEFORM_SUBSCREEN_CURSOR = 416

‘Freeform Subscreen Cursor’

If enabled, the subscreen cursor can move freely even to empty spots.

QR qr_SUBSCR_PRESS_TO_EQUIP = 417

‘Always Press To Equip’

If enabled, you must always press a button to equip an item, even if only B items are enabled.

QR qr_FAIRY_FLAG_COMPAT = 418

‘Inconsistent Fairy Flags’

If enabled, fairy flags work differently placed vs inherent.

QR qr_MIRROR_PRISM_LAYERS = 419

‘Mirror/Prism Combos Work On All Layers’

Mirror and Prism combos work on any layer, instead of only layer 0.

QR qr_OLD_LENS_LAYEREFFECT = 420

‘Old Lens Layer Effects’

If enabled, the lens only effects one layer of the screen at maximum, using the old dropdown selection.

QR qr_PUSHBLOCK_SPRITE_LAYER = 421

‘Pushable Block Sprite Layer’

If enabled, pushable blocks draw to a ‘block sprite layer’. pushblocks that are currently moving, while they are moving.

QR qr_OLD_SUBSCR = 422

‘Old Engine Subscreen Quirks’

If enabled, the subscreen behaves in a way needed for compat.

QR qr_ITM_0_INVIS_ON_BTNS = 423

‘Item 0 is invisible on buttons’

If enabled, Item 0 will not be drawn if equipped to a button.

QR qr_NO_BUTTON_VERIFY = 424

‘No Button Verification’

If enabled, the engine won’t attempt to forcibly fill empty buttons with items.

Also allows unequipping items by trying to equip it to the same button again.

QR qr_OLD_GAUGE_TILE_LAYOUT = 425

‘Old Gauge Tile Layout’

If enabled, ‘Gauge’ type widgets on the subscreen will use the old-style layout.

QR qr_WALKTHROUGHWALL_NO_DOORSTATE = 426

‘’Walk Through Walls’ don’t set door state’

If enabled, going through ‘Walk-through’ type doors does not set the room’s door state.

QR qr_SPOTLIGHT_IGNR_SOLIDOBJ = 427

‘Light beams ignore solid objects’

If enabled, light beams don’t treat solid ffcs/blocks/enemies/etc as solid.

QR qr_BROKEN_LIGHTBEAM_HITBOX = 428

‘Broken light beam hitbox’

If enabled, a couple of old light beam hitbox issues will occur. Notably, ffc light triggers will use ‘x+8,y+8’ instead of their center, and light triggers will act as ‘Mirror (4-Way)’ combos (to light beams, not weapons) if they do not block light.

QR qr_BROKEN_SWORD_SPIN_TRIGGERS = 429

‘Broken Sword Triggers (spin-related)’

If enabled, a sword trigger that was hit by slash cannot be re-hit by the same sword during the spin attack, making some spin-based puzzles not work.

QR qr_SCRIPT_CONTHP_IS_HEARTS = 430

‘Game->Generic:ref:GEN_CONTINUEHEARTS<globals_enum_member_gen_continuehearts> is in ‘Hearts’’

If checked, read/write to ‘Game->Generic:ref:GEN_CONTINUEHEARTS<globals_enum_member_gen_continuehearts>’ is in ‘Hearts’. Otherwise, it will be in ‘HP’. (Has no effect if ‘Game->Generic:ref:GEN_CONTINUEISPERCENT<globals_enum_member_gen_continueispercent>’ is true)

QR qr_MULTI_PLATFORM_FFC = 431

‘Allow Multiple Platform FFCs’

If checked, more than one FFC with the ‘Platform’ flag can move the Hero in a single frame. Otherwise, the first ‘Platform’ FFC to move the Hero will prevent other platforms from moving the Hero that frame.

QR qr_SEPARATE_BOMBABLE_TAPPING_SFX = 432

‘Separate Tap SFX for bombable walls’

If checked, bombable walls will use a separate SFX ‘Sword Tap (Hollow)’ when tapped against, instead of the default ‘Sword Tap’ sound. (sounds set in the Misc SFX menu)

QR qr_BROKEN_BOMB_AMMO_COSTS = 433

‘Broken Subscreen Ammo Costs’

If enabled, bombs/super bombs will check the bomb/sbomb counters to be usable, regardless of what their Cost Counters are set to.

QR qr_CONVEYORS_ALL_LAYERS = 434

‘Conveyors work on all layers + ffcs’

Conveyor combos work on all layers + ffcs. If multiple conveyors overlap, only the highest layer conveyor will apply. (FFCs count as above all layers for this)

QR qr_OLD_BROKEN_WARPEX_MUSIC = 435

‘Broken WarpEx Music’

If enabled, script WarpEx music will use the old behavior for the ‘WARP_FLAG_PLAYMUSIC’. This means the features of ‘WARP_FLAG_FORCE_RESET_MUSIC’ and ‘WARP_FLAG_FORCE_CONTINUE_MUSIC’ will not work properly, and instead a mixture of the two settings will occur (Always resetting if it’s off, and always continuing if it’s on).

If disabled, the reset and continue flags will work separately, not using the old behavior.

QR qr_BROKEN_LIFTSWIM = 436

‘Broken Lifting/Swimming’

If enabled, lifted objects won’t be dropped when swimming, even when lift gloves are set to not allow lifting while swimming.

QR qr_BROKEN_GENERIC_PUSHBLOCK_LOCKING = 437

‘Broken Push (Generic) locking’

If enabled, Push (Generic) combos won’t lock into place via the ‘Pushed’ flag (ex. ‘clicking into place’ for a block trigger)

QR qr_BROKEN_FLAME_ARROW_REFLECTING = 438

‘Broken Enemy Fire/Arrow Reflecting’

If enabled, Enemy Fire/Arrows won’t reflect off of Hero shields, even when the reflect flag is set.

Enemy ‘Fire 2’ will, contrarily, ALWAYS be BLOCKED by Hero shields, regardless of block/reflect flags.

QR qr_EW_FIRE_EMITS_LIGHT = 439

‘Enemy Fire Lights New Dark Rooms’

If enabled, enemy fire weapons will emit light by default, as Hero fire does.

QR qr_NEWDARK_TRANS_STACKING = 440

‘New Darkness Trans Layer Stacking’

If enabled, new dark rooms with multiple transparent layers will stack the transparency. Otherwise, the transparency will not stack, drawing only one layer.

QR qr_OLD_HERO_WARP_RETSQUARE = 441

‘Old ‘Hero->Warp’ Return Square’

If checked, ‘Hero->Warp()’ uses the return square of the current screen’s Sidewarp A. Otherwise, it uses return square A.

QR qr_BROKEN_PUSHBLOCK_TOP_HALF_SOLIDS = 442

‘Broken Pushblock Top-Half Solids’

If enabled, blocks will ignore the top half combo solidity when being pushed.

QR qr_BROKEN_PUSHBLOCK_FLAG_CLONING = 443

‘Pushblock Flag Cloning’

If enabled, pushblocks will clone any non-‘Push’ placed flag (only numbered 59 or higher, except Push (Generic) which does all) on them to every square they stop in.

QR qr_OLD_LANDING_SFX = 444

‘Old Landing SFX’

If enabled, water will use the old hardcoded splash sound when landing in it. Otherwise, the landing sound set for each combo will be used instead.

QR qr_FIRE_LEVEL_TRIGGERS_ARENT_WEAPONS = 445

‘’Burning’ triggers don’t count as ‘weapon triggers’’

If enabled, weapons triggering the ‘Burning’ trigger causes will not count as ‘weapon triggers’ for purposes of other trigger flags such as ‘Kill Triggering Weapon’ and ‘Weapon Separate Triggers’

QR qr_BLOCKS_DROWN = 446

‘Blocks Drown In Liquid’

Pushable blocks can drown in liquid, similarly to the hero.

QR qr_LAYER6_STRINGS_OVER_SUBSCREEN = 447

‘Strings on Layer 6 Draw Above Layer 7’

If enabled, message strings set to draw to layer ‘6’ will actually draw over the subscreen and layer 7 script draws.

If disabled, these strings draw directly UNDER the subscreen instead.

Has no effect at all if Subscreen Appears Above Sprites is unchecked.$#0#123$

QR qr_PUSHBLOCKS_FALL_IN_SIDEVIEW = 448

‘Pushblocks Fall In Sideview’

Pushable blocks fall in sideview (after being pushed only)

QR qr_BROKEN_ICY_FLOOR_SIDEVIEW = 449

‘Broken Sideview Icy Floor’

If enabled, ‘Icy Floor’ combos will use the same collision checks in sideview as overview. If disabled, icy floor takes effect underneath your feet (the combo you are *standing on*) instead.

QR qr_BROKEN_SYSTEM_COLORS = 450

‘Broken System Colors’

If enabled, subscreen editor ‘system colors’ will simply use cset 14’s colors, which will look different in the editor than the player, and is not consistent.

If disabled, these colors still may look different in the editor than the player- but they will be the closest matching color in the player’s palette to the color in the editor.

QR qr_WEAPONS_EXTRA_SPAWN_FRAME = 451

‘Weapons Scripts run an extra frame on spawning’

QR qr_BROKEN_SCROLL_INSTEAD_OF_DROWN_FALL = 452

‘Sometimes scroll over pits/water’

If checked, the player may be able to scroll over thin patches of liquid/pitfall combos that are close to the screen edge.

QR qr_LIFTED_WEAPONS_RUN_SCRIPTS = 453

‘Lifted Weapons Run Scripts’

If enabled, weapons in the player’s hands run their weapon script.

QR qr_BOMB_BOOMS_CLEAR_SCRIPTS = 454

‘Bomb Booms Clear Script’

If enabled, when a bomb explodes, it will stop it’s script.

QR qr_BETTER_ENGINE_AUTOROTATE = 455

‘Improved Autorotate’

If enabled, weapons set to ‘auto-rotate’ will apply the right-dir sprite when using UseSprite, burn sprites, etc.

QR qr_EW_ROCKS_HARDCODED_BREAK_ON_SOLID = 456

‘EWeapon Rocks hard-codedly break on solids’

If checked, EWeapon Rocks will always break when they hit a solid. Otherwise, they only break if they have the weapon flag for breaking when they hit a solid checked.

QR qr_IMPRECISE_WEAPON_SOLIDITY_CHECKS = 457

‘Weapons that break on solids use imprecise hitbox’

If checked, weapons use a hardcoded hitbox for weapon collisions, instead of their actual set hitbox.

QR qr_NO_STUNLOCK_IGNORE = 458

‘Weapons Cannot Stunlock Enemies (ignore)’

If enabled, enemies that are already stunned ignore any further stunning attacks. This prevents re-stunning them to keep them stunlocked.

QR qr_BROKEN_BLOCKHOLE_PITFALLS = 459

‘Pitfall BlockHoles use wrong Next combo’

If checked, Block Hole flags placed on Pitfalls will use the next combo of the pitfall (if the pitfall and block are on the same layer). If unchecked, it will use the next combo of the block as usual.

QR qr_CUSTOM_WEAPON_BROKEN_SIZE = 460

‘’Custom Weapon’s ignore size flags’

If checked, Custom Weapons will not properly set their Extend value, causing changes to tile width/height to not visually appear.

QR qr_OLD_WEAPON_REFLECTION = 461

‘Old Weapon Reflection’

If checked, some weapon types will not be reflected by mirror/prism combos, regardless of the ‘Reflect Flags’ of the combos.

QR qr_OLD_SPRITE_FALL_DROWN = 462

‘Old Non-Player Falling/Drowning’

If checked, enemies, weapons, and items will fall/drown using a hardcoded 16x16 hitbox instead of their actual hitbox, and enemies/items will not drown in sideview.

QR qr_OLD_TERMINAL_VELOCITY = 463

‘Old Terminal Velocity’

If enabled, terminal velocity is not applied as an absolute max speed.

QR qr_BETTER_PLAYER_JUMP_ANIM = 464

‘Improved Player Jump/Fall Animation’

If enabled, the Player’s jump/fall animation will play at a consistent speed without pausing, and will loop instead of overflowing into the walking animation.

QR qr_ARMOS_GRAVE_ON_LAYERS = 465

‘Armos/Grave combo types work on layers’

If enabled, armos and grave combos will work on layers.

QR qr_OLD_SCRIPT_LEVEL_GLOBAL_STATES = 466

‘Game->LevelStates[] and GlobalStates[] don’t trigger switches’

If checked, setting ‘Game->LevelStates[]’ and ‘Game->GlobalStates[] will NOT trigger the effects of these states changing. (Note: Even with this unchecked, ‘Game->LevelStates[]’ only causes changes when the current level’s index is written to)

QR qr_BROKEN_ARMOS_GRAVE_BIGHITBOX_COLLISION = 467

‘Broken Armos/Graves with Large Hitbox Player’

If enabled, and ‘Large Hitbox’ for the Player is enabled, armos/graves will not activate from below, and will only activate from the sides if you are near their top side.

QR qr_HERO_DIVE_UNDER_LAYER_1 = 468

‘Player Draws Under Layer 1 While Diving’

If enabled, the Player will be drawn under layer 1 while diving.

QR qr_CLASSIC_DRAWING_ORDER = 469

‘Classic Drawing Order’

When enabled, uses the classic drawing order code. When disabled, uses the newer drawing code, which has several effects:

  • ‘Negative’ layers draw in the proper order (-3 is behind -2)

  • Scripts can draw to layers ‘-1’ through ‘-7’ to draw in the BG

  • Sprites (enemies, weapons, player, etc) are drawn in their Z-order. This means that higher enemies will be drawn above lower enemies.

  • Several special script ‘layer timings’, notably sprite related ones such as ‘SPLAYER_LWEAP_ABOVE_DRAW’, will no longer be used, as said ‘timings’ don’t exist anymore.

QR qr_YSORT_SPRITES = 470

‘Y-Sort Sprites’

Requires ‘Classic Drawing Order’ be disabled.

When enabled, sprites which share the same Z coordinate will additionally have their draws ordered by their Y-value, such that sprites lower on the screen (higher Y values) are drawn over sprites higher on the screen.$#0#469$

QR qr_OLD_WEAPON_DRAW_ANIMATE_TIMING = 471

‘Old Weapon Animate Timings’

If enabled, weapons animate when they are drawn (instead of when they are processed); and they draw their shadow during their own draw, instead of separately.

QR qr_SCRIPTS_6_BIT_COLOR = 480

‘Scripts use 6-bit color (0-63) instead of 8-bit (0-255)’

QR qr_BROKEN_SCRIPTS_SCROLLING_HERO_POSITION = 481

‘Broken Hero Position Exposed To Scripts When Scrolling’

If disabled, the hero position will be accurately updated and clamped to the visible viewport during each frame of a scroll. Otherwise, it will be off by a few pixels, especially towards the end of a scroll.

QR qr_HIDE_BOTTOM_8_PIXELS = 482

‘Hide Bottom 8 Pixels’

If enabled, the bottom 8 pixels of the screen are never shown. Note that if disabled, active subscreens are still only 168 pixels tall, though overlay subscreens would be 230 instead of 224.

QR qr_BROKEN_SCRIPTS_BITMAP_DRAW_ORIGIN = 483

‘Broken Script Drawing Bitmap Draw Origin’

If enabled, bitmap draw commands incorrectly use Screen->DrawOrigin, resulting in unexpected offsets for bitmap drawing. This only affects quests made in 2.55.9 or later.

QR qr_INVERTED_DARK_COMBO_TRIGGERS = 484

‘Inverted Dark Combo Triggers’

If enabled, the combo trigger conditions for darkness / no darkness are inverted.

QR qr_SCRIPTS_SCREEN_DRAW_LIGHT_NO_OFFSET = 485

‘Scripts Screen->DrawLight Functions Have No Offset’

If enabled, the Screen->DrawLight functions never add the playing field offset, and the draw command is done instantly. When disabled, those functions respect Screen->DrawOrigin, and use the SPLAYER_DARKROOM_UNDER draw timing.

QR qr_ROPE_ENEMIES_SPEED_NOT_CONFIGURABLE = 486

‘Rope enemies speed is not configurable’

If disabled, when misc attribute 10 is positive for rope enemies it will be used to configure the charging speed.

QR qr_OLD_SCRIPTS_INTERNAL_ARRAYS_BOUND_INDEX = 487

‘Scripts bound index for some internal arrays’

If enabled, some internal arrays will bound the index used to the valid range for the array. When disabled, internal arrays will never bound their index. Additionally, all internal arrays will support negative indices.

QR qr_OLD_SCRIPTS_ARRAYS_NON_ZERO_DEFAULT_VALUE = 488

‘Scripts return non-zero for out-of-bounds access of some arrays’

If enabled, some arrays will return a non-zero value (typically -1) when accessing an out-of-bounds index (though most return zero). When disabled, all out-of-bounds accesses return zero.

QR qr_OLD_SCRIPT_VOLUME = 560

‘Old (Buggy) ZScript Volume Access’

If enabled, Audio->AdjustMusicVolume() and Audio->AdjustSFXVolume() will use their old behavior, which was bugged and wrote directly to the volume sliders.

QR qr_OLD_DMAP_INTRO_STRINGS = 561

‘Old DMap Titles and Intros’

If enabled, DMaps will use old title and intro string behavior where the intro string did not use the string editor and title was limited to 20 chars.

QR qr_SCRIPTDRAWSFROZENMSG = 562

‘Scripts Draw During Frozen Messages’

If checked, script draws will continue to clear during frozen messages. Otherwise, they will not clear until the message has closed and all draws during the message will be ignored.$#0#111$

QR qr_BROKEN_SIDEVIEW_SPRITE_JUMP = 563

‘Broken Sideview Sprite Jump’

If enabled, certain sprites (enemy, weapon, and item) will stick to the ground in sideview and cannot be made to jump off via script.

QR qr_PARSER_250DIVISION = 640

‘2.50 Division Truncation’

COMPAT - This replicates an old bug with division.

QR qr_PARSER_NO_LOGGING = 641

‘Disable Tracing’

OPTION - Disables ‘Trace()’, ‘printf()’, and similar commands.

QR qr_PARSER_SHORT_CIRCUIT = 642

‘Short-Circuit Boolean Operations’

COMPAT REVERSE - applies short-circuit.

QR qr_PARSER_BOOL_TRUE_DECIMAL = 643

‘2.50 Value of ‘true’ is 0.0001’

COMPAT - replicates old behavior possibly needed for ZASM

QR qr_SPRITEXY_IS_FLOAT = 644

‘Sprite Coordinates are Float’

QR qr_PARSER_TRUE_INT_SIZE = 645

‘True MAX_INT sizing’

COMPAT REVERSE - Uses 214748.3648 as the max value, instead of 214747 (similar for negative min value)

QR qr_WPNANIMFIX = 646

Deprecated.

QR qr_NOSCRIPTSDURINGSCROLL = 647

Deprecated.

QR qr_OLDSPRITEDRAWS = 648

‘Old (Faster) Sprite Drawing’

If enabled, the old method for drawing sprites is used. The old method is faster, but lacks many features such as sprite rotations and scaling.

QR qr_WEAPONSHADOWS = 649

‘Weapons Have Shadows’

QR qr_ITEMSHADOWS = 650

‘Items Have Shadows’

QR qr_OLDEWPNPARENT = 651

‘Old eweapon->Parent’

QR qr_OLDCREATEBITMAP_ARGS = 652

‘Old Args for CreateBitmap() and bitmap->Create()’

QR qr_OLDQUESTMISC = 653

Deprecated.

QR qr_PARSER_FORCE_INLINE = 654

Deprecated.

QR qr_CLEARINITDONSCRIPTCHANGE = 655

‘Clear InitD[] on Script Change’

QR qr_NOFFCWAITDRAW = 656

‘No FFC Waitdraw()’

QR qr_NOITEMWAITDRAW = 657

‘No Item Script Waitdraw()’

QR qr_TRACESCRIPTIDS = 658

‘Print Script Metadata on Traces’

QR qr_FIXDRUNKINPUTS = 659

‘Writing to INPUT Overrides Drunk State’

QR qr_PARSER_BINARY_32BIT = 660

‘Binary Operations use true 32-bit Int’

COMPAT - treats all binary operations as ‘long’ type

QR qr_ALWAYS_DEALLOCATE_ARRAYS = 661

Deprecated.

QR qr_ONDEATH_RUNS_AFTER_DEATH_ANIM = 662

‘Hero OnDeath script runs AFTER engine death animation’

QR qr_DISALLOW_SETTING_RAFTING = 663

‘Don’t Allow Setting Action to Rafting’

QR qr_WEAPONS_EXTRA_DEATH_FRAME = 664

‘Weapons Live One Extra Frame With WDS_DEAD’

QR qr_250WRITEEDEFSCRIPT = 665

‘Writing npc->Defense:ref:NPCD_SCRIPT<globals_enum_member_npcd_script> Sets All Script Defences’

QR qr_SETENEMYWEAPONSPRITESONWPNCHANGE = 666

‘Writing npc->Weapon Sets its Weapon Sprite’

QR qr_BROKENCHARINTDRAWING = 667

‘Broken DrawInteger and DrawCharacter Scaling’

QR qr_WRITING_NPC_WEAPON_UNIQUE_SPRITES = 668

‘npc->Weapon Uses Sprite 246-255 for EW_CUSTOM*’

QR qr_COMBOSCRIPTS_LAYER_0 = 669

‘Combos Run Scripts on Layer 0’

QR qr_COMBOSCRIPTS_LAYER_1 = 670

‘Combos Run Scripts on Layer 1’

QR qr_COMBOSCRIPTS_LAYER_2 = 671

‘Combos Run Scripts on Layer 2’

QR qr_COMBOSCRIPTS_LAYER_3 = 672

‘Combos Run Scripts on Layer 3’

QR qr_COMBOSCRIPTS_LAYER_4 = 673

‘Combos Run Scripts on Layer 4’

QR qr_COMBOSCRIPTS_LAYER_5 = 674

‘Combos Run Scripts on Layer 5’

QR qr_COMBOSCRIPTS_LAYER_6 = 675

‘Combos Run Scripts on Layer 6’

QR qr_OLD_INIT_SCRIPT_TIMING = 676

‘Use Old Global Init and SaveLoad Timing’

QR qr_DO_NOT_DEALLOCATE_INIT_AND_SAVELOAD_ARRAYS = 677

‘Don’t Deallocate Init/SaveLoad Local Arrays’

QR qr_BITMAP_AND_FILESYSTEM_PATHS_ALWAYS_RELATIVE = 678

‘All bitmap-> and FileSystem-> paths relative to quest ‘Files’ folder’

QR qr_PARSER_STRINGSWITCH_INSENSITIVE = 679

‘Switch/case of strings is case-insensitive’

OPTION - disables ‘switch(string)’ case sensitivity

QR qr_OLD_SLASHNEXT_SECRETS = 680

‘Old Slash Combo Secret Flag Behavior’

This QR changes the behavior of Slash combos when they have a secret combo on top of them. The old behavior (used when this rule is enabled) is that when slashed, instead of becoming the next combo or undercombo, they instead become the secret flagged combo. Many old quests used this behavior to simulate Slash->Next before it was a thing, and even after Slash->Next was introduced, it was used as a way to avoid making another slash->Next setup by just putting a flag over it, saving combo space/keeping organization. The new behavior (used if this rule is disabled) will ignore the secret flag, treating it as just a regular Slash combo.

QR qr_STEP_IS_FLOAT = 681

‘Sprite->Step uses new, precise values’

QR qr_OLDMAPDATAFLAGS = 682

Deprecated.

QR qr_OLD_PRINTF_ARGS = 683

‘Old printf() args’

Compat, turns off new printf features.

QR qr_PASSIVE_SUBSCRIPT_RUNS_WHEN_GAME_IS_FROZEN = 684

‘Passive Subscreen Script runs during wipes/refills’

QR qr_WRITE_ENTRYPOINTS_AFFECTS_HEROCLASS = 685

‘Writing Screen->EntryX, EntryY Resets Spawn Points’

QR qr_LOG_INVALID_UID_LOAD = 686

Deprecated.

QR qr_COMBODATA_INITD_MULT_TENK = 687

‘Broken Combodata->InitD[]’

QR qr_ZS_NO_NEG_ARRAY = 688

‘Disable accessing negative array indexes’

If enabled, the new feature allowing accessing negative indexes of an array to backwards-index them (i.e. ‘arr[-1]’ is the LAST element in the array) will be DISABLED if this is on.

Useful for debugging if you’re using this feature *by mistake*.

QR qr_PRINTF_NO_0FILL = 689

‘No printf() 0-fill’

Instead of filling all extra arguments with ‘0’, just leave them unchanged.

QR qr_SHIELDBUBBLE = 690

‘Fairy Rings Remove Shield Jinxes’

If enabled, fairy ring flags will heal shield jinxes when the Hero steps on them.

QR qr_SETENEMYWEAPONSOUNDSONWPNCHANGE = 691

‘Writing npc->Weapon Sets its Weapon Sound’

QR qr_BROKEN_CONVEYORS = 692

‘Broken Conveyors’

If enabled, conveyors will affect the hero when rafting.

QR qr_ZS_OLD_SUSPEND_FFC = 693

‘Game->Suspend:ref:susptFFCSCRIPTS<globals_enum_member_susptffcscripts> suspends screen scripts’

If checked, setting ‘Game->Suspend:ref:susptFFCSCRIPTS<globals_enum_member_susptffcscripts>’ will suspend screen scripts.

If disabled only the ffcscripts will be suspended.

QR qr_MAX = 694


Variable descriptions#

const Audio Audio 🔗 Source


const int OP_TRANS = 64 🔗 Source

Opacity options. Use with drawing commands.


const int OP_OPAQUE = 128 🔗 Source


const Debug Debug 🔗 Source


const int MIN_FFC = 1 🔗 Source


const int MAX_FFC 🔗 Source

The highest FFC ID possible for the current Region.


const FileSystem FileSystem 🔗 Source


const int MAX_TIME = 194400 🔗 Source

Max value of Game->Time.


const Game Game 🔗 Source


const untyped NULL = 0 🔗 Source


const untyped null = 0 🔗 Source


const untyped Null = 0 🔗 Source


const Graphics Graphics 🔗 Source


const Hero Hero = 1 🔗 Source

1 is the sprite uid for Hero.


Deprecated: Use Hero


const Hero Player = 1 🔗 Source

Deprecated: Use Hero


const Input Input 🔗 Source


const rgb INVALID_COLOR = -1 🔗 Source


const QR qr_WEAPONS_EXTRA_FRAME = 6640000 🔗 Source

Old names for old script compat


const randgen RandGen 🔗 Source


const Region Region 🔗 Source

The region the Hero is currently in.


const int NUM_COMBO_POS 🔗 Source

176 per screen in the current region. Same as Region->NumCombos.


const Screen Screen 🔗 Source


const Text Text 🔗 Source


const Viewport Viewport 🔗 Source


const ZInfo ZInfo 🔗 Source


const ZInfo Module 🔗 Source

Deprecated: Use ZInfo