I have made great progress in my personal project of trying to add static scenery objects to customize my zones.
Adding a static scenery object to a zone is very easy once you know how.
Step 1: Know the model name for the object you're adding (look for per-zone object model inventories in an upcoming new version of my EQ Model Inventory program)
Step 2: Add a record to the "doors" table in your EQ database with the following field settings:
id = Unique number for this record
doorid = Unique number within the doors list for this zone
zone = Zone nick
version = Instance version number (0 for default)
name = Model name from Step 1
pos_x/y/z = Location to place object
heading = Direction object faces (0 - 511)
opentype = 9 (makes object non-solid) or 31 (makes object solid)
dest_zone = NONE
size = 100
Everything else = 0
Step 3: Leave and re-enter your zone and see your new object(s)!
Note: If you make changes to the database and the zone is still running in the zone server, you'll have to do a "#zoneshutdown ZoneNick" before zoning back in, to clear the cache, or your changes won't take effect. A hotkey works well.
This technically adds the object to the zone as a door, but opentypes 9 and 31 contain no animation or sound effect, so nothing happens when the user clicks on them. They're just like static scenery objects, except you can place them wherever you want!
Opentype 9 actually makes objects -mostly- non-solid. I tried looking for a fully non-solid opentype, but the partial that 9 gives appears to be the best we can get. Each object will have a few surfaces that are solid, but most become walk-through.
Opentype 31 makes objects fully solid unless the object was specifically designed to be walk-through, which I've mostly seen in chairs.
I plan to make plenty of use of this ability in my own customized server.
Now, if anyone can figure out a way to repop a zone's door list without requiring a zone-out, #zoneshutdown, and zone-in, that'd be way cool.