Levels

Object Table

A table for every known object and their respective properties.

Overview

There are many different types of objects in KulaQuest, each with their own set of properties. Here is a complete table of every known object to exist:

ID(h)NameDirectionVariantStateAppearance
01Fire Patch000-
02Ice Patch000-
03Invisible Patch000-
04Acid Patch000-
05TransporterDirectionColorEnabled256, 1, 30
06Unknown----
07Exit0Exit ColorLocked500, 1, 30
08Timer Pause000-
09Button0ColorEnabled256, 0, 0
0ABouncepad00Collectable256, 3, 0
0BMoving Spike0SyncCollectable256, 0, 0
0CSpike00Collectable256, 0, 0
0D-19Unknown----
1AHidden Exit00Locked500, 1, 30
1BFruit Bowl00Collectable-
1CArrowDirection0Collectable256, 0, 0
1DPlayer Spawn (Paused)Direction00256, 0, 0
1EPlayer SpawnDirection00256, 0, 0
1FKey00Collectable386, 1, -100
20Lethargy Pill00Collectable386, 2, 100
21Bouncy Pill00Collectable386, 2, 100
22Invincibility Pill00Collectable386, 2, 100
23Hourglass00Collectable386, 2, 100
24Gem0VariantCollectable386, 1, -17
25Coin0VariantCollectable386, 1, -100
26Sunglasses00Collectable386, 1, -100
27Purple Present00Collectable-
28Red Present00Collectable-
29Yellow Present00Collectable-
2ASpike Enemy00Collectable416, 0, 100
2BApple00Collectable386, 1, 100
2CWatermelon00Collectable386, 1, 100
2DPumpkin00Collectable386, 1, 100
2EBanana00Collectable386, 1, 100
2FStrawberry00Collectable386, 1, 100
30Blue Present00Collectable-
31Green Present00Collectable-
32Slow StarDirection00-
33TireDirection00-
34Fast StarDirection00-
35Capture PodDirection00-
36-37Unknown----
38Captivator0Sync0-

Variant

Several variants for different objects exist, and are actually used under the hood for indexing into a different sub-model for a given object. Transporters and buttons allow you to change their color using the this field. Lasers have a dedicated property for their color, but it follows the same structure.

ObjectValue 0Value 1Value 2Value 3
CoinGold (750 pts.)Silver (500 pts.)Bronze (250 pts.)-
GemBlue (2975 pts.)Green (2975 pts.)Red (2975 pts.)-
ExitGreen (Unlocked)Red (Locked)--
ColorsYellowBlueGreenRed
Colors (alpha and beta)BlueRedGreenYellow

For the first two demo versions specifically, they follow a slightly different color structure on the bottom.

Sync

Some objects and blocks have an option that allows you to specify when their animation occurs in sync with others. For example, in some levels there are moving spikes that are placed right next to each other that poke out and retract at different times, allowing the player to time their jumps, instead of those animations occurring at the same time. For flashing blocks, they have a dedicated sync value to control this, while moving spikes and captivators use the variant field to specify this value.

The sync value ranges from 0 to 5, as any value after 5 stays in sync together, so it is effectively pointless. However, it's worth noting that with moving spikes specifically, setting its sync value to 5 causes the spikes to become invisible and may cause other unexpected behavior, so it is recommended to keep the sync value in a range from 0 to 4 for moving spikes specifically! For captivators, the sync value is also in range from 0 to 4, though nothing larger will cause any unexpected behaviors.

State

Most objects use this value in memory to determine whether it has been collected or not if it's a collectable object:

ObjectValue 0Value 1Value 2
Transporters and Buttons-EnabledDisabled
Exits-UnlockedLocked (set in file)
CollectablesCollectedUncollected (set in file)-

Exits and collectables must have their states set to 2 and 1 in the file respectively as shown in the table for them to work properly.

Transporters and buttons use this value to determine whether they're enabled. Any other value defaults to disabled, but the state will be set to 1 when pressed again. For exits, any other value defaults to locked.

Direction

Many objects that allow you to control what direction they face. For example, enemies allow you to control what direction they start moving in when the level is played based on this value, and other objects as the player spawn allow you to specify what direction the player spawns in.

Depending on the side of the block the object is placed on, you can specify the direction based on this table:

Block FaceValue 1Value 2Value 3Value 4
Negative ZPositive YNegative XNegative YPositive X
Positive XPositive YNegative ZNegative YPositive Z
Positive YNegative ZPositive XPositive ZNegative X
Negative YPositive ZPositive XNegative ZNegative X
Negative XPositive YPositive ZNegative YNegative Z
Positive ZPositive YPositive XNegative YNegative X

Any other value defaults to the value 1, and the direction for transporters specify what direction the player will face when exited out of that transporter.

Capture Pod Direction

For an unknown reason, capture pods still move in a random direction even if multiple in a level are set to the same direction. It is not recommended to set its direction, and in every level they are actually set to either 0 or 4 in all releases.

Appearance

In the alpha and beta demos for the game, objects contained 3 additional fields for setting how the object spins and how far it is off the ground. The 3 values under the Appearance column represent the following:

  • Ground offset
  • Rotation type
  • Rotation speed
    • The direction it spins on the axis depends on whether the value is positive or negative.

Rotation types:

ValueAxis
0None
1Relative Z axis
2Relative Y axis
3Relative X axis

On this page