Level Format Levels are made of objects. Object data is stored under <level>, as an array of arrays. The top-level delimiter (between object arrays) is "|" (pipe symbol); within object arrays, the delimiter is "," (comma). As an example: 3,150,30|1,0,0 ..is equivalent to this array: [[3, 150, 30], [1, 0, 0]] The project XML document format is defined in CreatorProject.buildDocument alongside the converse buildProject decode function. The <level> contents format is defined in Creator.levels.exportEnvironmentData. The term "environment" refers to the objects stored in a level. Each environment object follows this format: ID, XPOS, -YPOS[, ROTATION[, TILEID[, graphics stuff ] ] ] Coordinate Grid The object grid is more or less a cartesian coordinate system. Each object has an X and Y position (its "coordinate"), which represents where it is placed in the scene. The X value determines its position on the X axis, which runs from left to right. The X value of 30 denotes 30 units right from the center. The Y value determines its position on the Y axis, which runs from top to bottom. Note, however, that in the save format, an object's Y position is the opposite of its actual game value. If an object's saved Y value is 30, it is really positioned at -30 on the Y axis, which is 30 units above the center. The positioning of tile-like objects along the "snap" grid may best be described with a diagram of a number line: -180 -120 -60 0 +60 +90 +180 |---*---|---*---|---*---|---*---|---*---|---*---| -150 -90 -30 +30 +90 +150 Each tick line in the diagram (pipe symbols: "|") mark the visible edge of two tiles. Stars ("*") mark the actual coordinate of tiles. In simpler terms, a tile's coordinate values are physically placed in the center of the displayed shape (not on a corner). Most tiles have a physical size of 60x60 units. Large Tiles also have coordinates that represent their centers; since they are twice the size of normal tiles, their center is offset respectively. Where a normal tile may be positioned at (30, 90, 150) a Large Tile may be positioned at (60, 180, 300). Level Verification When a level is loaded and there is no player object, a new player object will be placed at the coordiantes (0, 0). List of Objects Following this paragraph is a list of objects and their format, sorted by object ID. It only contains objects from the categories "Blocks & Tiles", "Walls & Decoration", and "Switches & Doors" currently; and is only guaranteed to be up to dat through to the date of April 18, 2017. - [1, XPOS, YPOS] Player - [3, XPOS, YPOS] Floor - [4, XPOS, YPOS] Pipe - [5, XPOS, YPOS, 0, TILEID] Tile - [6, XPOS, YPOS, 0, TILEID] RampTile (slope top -> right) - [7, XPOS, YPOS, 0, TILEID] RampTile (slope top -> left) - [8, XPOS, YPOS, 0, TILEID] StairTile (slope top -> right) - [9, XPOS, YPOS, 0, TILEID] StairTile (slope top -> left) - [10, XPOS, YPOS, 0, TILEID] BackWall - [11, XPOS, YPOS, 0, TILEID] BackWindow (triangle) - [12, XPOS, YPOS, 0, TILEID] BackWindow (circle) - [13, XPOS, YPOS, 0, TILEID] BackWall (alternate style) - [14, XPOS, YPOS] BackLight - [15, XPOS, YPOS] Water - [16, XPOS, YPOS] WaterTop - [17, XPOS, YPOS] Log - [18, XPOS, YPOS] Bouncer - [19, XPOS, YPOS] IceBlock - [20, XPOS, YPOS] WeakFloor - [21, XPOS, YPOS] Sandblock - [22, XPOS, YPOS] LamWall (black style 1) - [23, XPOS, YPOS] LamWall (black style 2) - [24, XPOS, YPOS] LamWall (black style 3) - [25, XPOS, YPOS] LamWall (black style 4) - [26, XPOS, YPOS] LamWall (brown style 1) - [27, XPOS, YPOS] LamWall (brown style 2) - [28, XPOS, YPOS] LamWall (brown style 3) - [29, XPOS, YPOS] LamWall (brown style 4) - [30, XPOS, YPOS] LamWall (red style 1) - [31, XPOS, YPOS] LamWall (red style 2) - [32, XPOS, YPOS] LamWall (red style 3) - [33, XPOS, YPOS] LamWall (red style 4) - [34, XPOS, YPOS] TechWall (style 1) - [35, XPOS, YPOS] TechWall (style 2) - [36, XPOS, YPOS] LEDWall (style 1) - [37, XPOS, YPOS] LEDWall (style 2) - [38, XPOS, YPOS] LEDWall (style 3) - [39, XPOS, YPOS] LEDWall (style 4) - [40, XPOS, YPOS] Statue (1x3, "metal"-style) - [41, XPOS, YPOS] Statue (2x2, "stone"-style) - [42, XPOS, YPOS] Statue (1x3, "stone"-style) - [43, XPOS, YPOS] Sign ("DANGER - CRITICAL - RAD LEVEL OVER LIMIT") - [44, XPOS, YPOS] Sign ("DRINK - ZANPO") - [45, XPOS, YPOS] Sign ("right arrows"-style) - [46, XPOS, YPOS] Sign ("left arrows"-style) - [47, XPOS, YPOS] Meltblock - [48, XPOS, YPOS] NearLight - [49, XPOS, YPOS] Ladder - [50, XPOS, YPOS] Slider - [51, XPOS, YPOS] Elevator - [52, XPOS, YPOS] Dynamo - [53, XPOS, YPOS] Windmill (clockwise) - [54, XPOS, YPOS] Windmill (counter-clockwise) - [55, XPOS, YPOS] Gear (clockwise) - [56, XPOS, YPOS] Gear (counter-clockwise) - [57, XPOS, YPOS] BigGear (clockwise) - [58, XPOS, YPOS] BigGear (counter-clockwise) - [59, XPOS, YPOS] Rod - [60, XPOS, YPOS] TriGear - [61, XPOS, YPOS] Teleporter (green) - [62, XPOS, YPOS] Teleporter (orange) - [63, XPOS, YPOS] Teleporter (purple) - [64, XPOS, YPOS] Crate - [68, XPOS, YPOS] Large Water - [69, XPOS, YPOS] GoldPanel (style 1) - [70, XPOS, YPOS] GoldPanel (style 2) - [71, XPOS, YPOS] CyberPanel (style 1) - [72, XPOS, YPOS] CyberPanel (style 2) - [73, XPOS, YPOS] Wire Wall - [74, XPOS, YPOS] HotWire Wall - [75, XPOS, YPOS] Angular Wall - [76, XPOS, YPOS] Rainbow Wall - [77, XPOS, YPOS] Aqua Wall - [78, XPOS, YPOS] Rock Pile (slope top -> left) - [79, XPOS, YPOS] Rock Pile (slope top -> right) - [80, XPOS, YPOS[, ROTATION]] Tunnel ("dirt"-style) - [81, XPOS, YPOS[, ROTATION]] Tunnel Corner ("dirt"-style) - [82, XPOS, YPOS[, ROTATION]] Tunnel Junction (3-way) ("dirt"-style) - [83, XPOS, YPOS[, ROTATION]] Tunnel Junction (4-way) ("dirt"-style) - [84, XPOS, YPOS[, ROTATION]] Tunnel End ("dirt"-style) - [85, XPOS, YPOS[, ROTATION]] Tunnel ("blue"-style) - [86, XPOS, YPOS[, ROTATION]] Tunnel Corner ("blue"-style) - [87, XPOS, YPOS[, ROTATION]] Tunnel Junction (3-way) ("blue"-style) - [88, XPOS, YPOS[, ROTATION]] Tunnel Junction (4-way) ("blue"-style) - [89, XPOS, YPOS[, ROTATION]] Tunnel End ("blue"-style) - [90, XPOS, YPOS, 0, TILEID] Large Tile - [91, XPOS, YPOS, 0, TILEID] LargeBack - [92, XPOS, YPOS, 0, TILEID] LargeWindow - [115, XPOS, YPOS] TorchLight - [116, XPOS, YPOS] TikiTorch - [117, XPOS, YPOS] BackWall (3x2) - [218, XPOS, YPOS] Big Elevator - [219, XPOS, YPOS] 2way Platform - [250, XPOS, YPOS] AutoDoor - [251, XPOS, YPOS] TouchDoor - [252, XPOS, YPOS] TouchFloor - [253, XPOS, YPOS] BlueKey - [254, XPOS, YPOS] GreenKey - [255, XPOS, YPOS] YellowKey - [256, XPOS, YPOS[, ROTATION]] BlueDoor - [257, XPOS, YPOS[, ROTATION]] GreenDoor - [258, XPOS, YPOS[, ROTATION]] YellowDoor - [259, XPOS, YPOS] BlueSwitch - [260, XPOS, YPOS] BlueRing - [261, XPOS, YPOS] GreenSwitch - [262, XPOS, YPOS] GreenRing - [263, XPOS, YPOS] YellowSwitch - [264, XPOS, YPOS] YellowRing - [265, XPOS, YPOS] PermSwitch (green) - [266, XPOS, YPOS] PermBlock (green) - [267, XPOS, YPOS] PermSwitch (orange) - [268, XPOS, YPOS] PermBlock (orange) - [269, XPOS, YPOS] Level Door (style 1) - [270, XPOS, YPOS] Level Door (style 2) - [271, XPOS, YPOS] Level Door (style 3) - [272, XPOS, YPOS] Level Door (style 4) - [273, XPOS, YPOS] Level Door (style 5) - [274, XPOS, YPOS] Level Door (style 6) - [275, XPOS, YPOS] RemoteSwitch - [276, XPOS, YPOS] MagicSwitch - [277, XPOS, YPOS] OneWayDoor - [278, XPOS, YPOS, ROTATION, 0, 0, 0, 0, , TARGET_X_OFF, TARGET_Y_OFF] Closer - [279, XPOS, YPOS] PurpleDoor - [280, XPOS, YPOS] TrapDoor (fall-only) - [281, XPOS, YPOS] TrapDoor (jump-only) - [282, XPOS, YPOS] FakeDoor - [283, XPOS, YPOS] PurpleKey - [284, XPOS, YPOS] InvisibleSwitch - [285, XPOS, YPOS, 0, TILEID, 0, 0, 0, , TARGET_X_OFF, TARGET_Y_OFF] BurstTile - [286, XPOS, YPOS] CaveIn - [287, XPOS, YPOS] Cinderblock - [288, XPOS, YPOS[, 0, 0, 0, 0, 0, TEXT]] Inscription - [289, XPOS, YPOS] WoodPost - [351, XPOS, YPOS[, 0, 0, 0, 0, 0, TEXT]] Wizard - [352, XPOS, YPOS[, 0, 0, 0, 0, 0, TEXT]] General - [353, XPOS, YPOS[, 0, 0, 0, 0, 0, TEXT]] Owl - [401, XPOS, YPOS] Brick (2x1 "blue"-themed) - [402, XPOS, YPOS] Brick (2x2 "blue"-themed) - [403, XPOS, YPOS] Brick (3x1 "blue"-themed) - [404, XPOS, YPOS] Brick (2x2 "grey"-themed) - [405, XPOS, YPOS] Brick (2x2 "dark grey"-themed) - [406, XPOS, YPOS] Brick (2x2 "grey red"-themed) - [407, XPOS, YPOS] Brick (2x1 "grass"-themed) - [408, XPOS, YPOS] Brick (2x2 "dirt panel"-themed) - [409, XPOS, YPOS] Brick (2x2 "dirt"-themed) - [410, XPOS, YPOS] Brick (3x1 "grass"-themed) - [411, XPOS, YPOS] Brick (2x1 "neon"-themed) - [412, XPOS, YPOS] Brick (2x2 "neon"-themed) - [413, XPOS, YPOS] Brick (3x1 "neon"-themed) - [451, XPOS, YPOS] Lava - [452, XPOS, YPOS] LavaTop - [456, XPOS, YPOS, 0, TILEID] RampTile (slope bottom -> right) - [457, XPOS, YPOS, 0, TILEID] RampTile (slope bottom -> left) - [501, XPOS, YPOS] BackBrick ("blue"-themed) - [502, XPOS, YPOS] BackBrick ("grey"-themed) - [503, XPOS, YPOS] BackBrick ("dirt"-themed) - [504, XPOS, YPOS] BackBrick ("neon"-themed) - [601, XPOS, YPOS] FrontPlant (2x2) - [602, XPOS, YPOS] Plant - [603, XPOS, YPOS] FrontPlant (1x2) - [604, XPOS, YPOS] FrontGrass - [605, XPOS, YPOS] Grass - [606, XPOS, YPOS] Etching (style 1) - [607, XPOS, YPOS] Etching (style 2) - [608, XPOS, YPOS] FrontStatue - [609, XPOS, YPOS] FrontScreen - [610, XPOS, YPOS] Skulls - [611, XPOS, YPOS] SpiderWeb (style 1) - [612, XPOS, YPOS] Window - [613, XPOS, YPOS[, ROTATION]] Truss - [614, XPOS, YPOS] Waterspout (style 1) - [615, XPOS, YPOS] Waterspout (style 2) - [616, XPOS, YPOS] Waterspout (style 3) - [617, XPOS, YPOS] SpiderWeb (style 2) - [618, XPOS, YPOS] WoodPostBehind - [800, XPOS, YPOS, 0, 0, GRAPHICS..] TextureBlock - [801, XPOS, YPOS, 0, 0, GRAPHICS..] TextureWall Ideas Perhaps a rotated Elevator? A rotated TikiTorch? Can other things (not Wizards, Owls, etc) talk? Multiple player objects? Rotated MagicSwitch?