AFAIK there is no good documentation of how to make tiles and stuff (at least I couldn't find anything really useful). I learned most of this stuff by watching examples... the image is full of them ;).
Making an object scriptable is not as easy as it should be because Etoys has a lot of quirks that need some special attention.
The tiles are created as slots/commands in the #additionsToViewerCategories method in the class side of the Morph (IMO you can see some simple examples by watching the source code of BookMorph or JoystickMorph). To implement that method correctly you have to be very careful and obey the rules. Below is a simple example:
additionsToViewerCategories
^
#(
(#category
(
(#slot #slotName 'comment' #SlotType #readWrite #Player #getterMethod #Player #setterMethod:)
(#command #commandName 'comment')
(#command #commandWithOneParameter: 'comment' #ParameterType)
)
)
)
The #category must be lowercase (this is one of Etoys quirks I tell you before), otherwise it will not appear... don't ask me why...
The #SlotType and #ParameterType are usually Number but they can be Boolean, Color, Point, String, among others...
The #readWrite part can also be #readOnly or #writeOnly (I don't know the purpose of the latter, though).
The #getterMethod and #setterMethods: are the names of the methods you'll have to implement in order to access the value of the slot. This methods must be implemented in a Player subclass (or Player itself but I don't like to touch the Player class, it's already bloated and messy). If you make a subclass of Player you must implement a method called #newPlayerInstance in your Morph. This method should look like this:
newPlayerInstance
^ MySubclassOfPlayer newUserInstance.
Best regards
Richo