Skip to content

obj _idRenderData

When building custom objects, using the _idRenderData strings after the obj is essential for controlling the placement of items in game.

Here are the ones that display uniquely (as of 12/20/2024) with examples of how they are displayed.

Keywords:

  • Focus Column: This is the main column on the ground grid that the item (the light diamond for placing items) is being placed on.
  • Focus Row: This is the main row on the ground grid that the item is being placed on.
  • Object Center (obj center): These three lines, making a kind of downward arrow, shows where the object sits on the ground grid by default, without any modifiers of any kind.
  • Clipping Row: This is the row on the ground grid that clips the edge of the item, giving it the appearance of sitting on the ground. Each row is numbered from the placement down.
  • Regular: How the item is placed by default.
  • Alternate: When you rotate or flip the item, how it displays.

This example uses a 64 x 64 pixel image as a reference.

pixel_refe

This reference item shows the left, right, and center of the image, as well as a smaller 32x32px grid for showing smaller items, and an offset cube to show the general floor positions.

For reference, Elin uses an angle of 2 pixels horizontally to 1 pixel vertically for the blocks.

@obj ceil

ceilnotes

Obj goes up 2 rows, aligns obj center.

@obj door

This is one of the most commonly used settings, so understanding it is important.

r-door

door-regularnotes
Obj drops down slightly from the focus cell, aligns the obj center with the focus centerClips on Row 1
door-alternatenotes
Obj raises up a bit, aligns obj center with the column to the right of the focusClips on Row 1

Overview:

r-door-both2

@obj doorcurtain

doorcurtainnotes
Obj drops down slightly, aligns the obj center with the focusClips on Row 2

@obj doorframe

This placement gave me the most nightmares and inspired this whole endeavor. I still don't quite understand why it handles the way it does.

r-doorframe

doorframedoorframe-alternate
Obj drops by 1 row and moves left by 1 columnSame placement but slightly raised up
Both clip on Row 1Both clip on Row 1

@obj eq

This is designed to be handheld items so it sets up nicely on the sprite, so not really used for objects unless you have interesting use cases.

eq-regulareq
Obj shifts to the left by 16px and up a little bitBoth clip on Row 1

@obj flat

flatnotes
Obj drops down to the middle of the focus on both horizontal and verticalClips on Row 1

@obj hangboard

I wasn't expecting this one to be as interesting as it is, and has a lot of potential, but be aware of where the clipping happens.

hangboardhangboard-placement
hangboard-regularhangboard-alternate
Obj shifts to the left by 16px, drops down to be 'on' Row 2Obj shifts up slightly but keeps the center the same as regular
Clips on Row 3Clips on Row 1

@obj hangroof

hangroof-placementhangrood-notes

r-hangroof

hangroof-regularhangroof-alternate
Obj shifts to the left by 1 column, down by 2 rowsObj shifts to the left by 16px, down by 1 row
Clips on Row 3Clips on Row 2

@obj tall

tallnotes
Obj shifts up by 6px or soClips on Row 1

@obj vine

vinenotes
vine
vine-regularvine-alternate
Obj shifts right by 8px or so, and up by 8px or soObj shifts left by 8px or so, down by 8px or so
Clips on Row 1Clips on Row 2

One final note:

For your own items, to give you an idea of where they are positioned, you can overlay this image on a screen shot to help get an idea of where it is and where it's going to help tweak your designs.

Sprite