Unrestricted item_template creation hasn't been around since the last days of The Burning Crusade. However, it's still possible to create all sorts of database item_template entries, but there are a few catches to making such items behave in a viable way. None of these involve modifying a client, which there should never be any need for.
As you know, adding your own entries beyond what the client is aware of/expects presents a couple difficulties.
- 1) Weapons don't count as being weapons while being equipped. Passive attacks still function, but spells which require a weapon to be equipped won't work.
- 2) Engineering or other Use: effects on a custom created item won't work if just dragged onto the hotbar. (You can work around this limitation with Macros, however.)
- 3) Unequipped items in your inventory are represented by a red ? on a black background icon. Curiously enough, if you make armor like this, the icons will appear properly (matching the modelid assigned to the item) while it is equipped, if it's in a vendor, or in a quest-related dialog.
There is, however, a library of existing database items which behave properly that you can repurpose. If a database similar to retail is used, these candidate items have become unattainable over time and are free for you to make use of. These include items from the now defunct Lv.60 Naxxramas and Onyxia, as well as a number of other special one-time only events. The limitations here are as follows:
- 1) The model of the item you are repurposing cannot be changed. Even if you change the modelid, if the client already knows what model that item_template entry is supposed to have, it will ignore whatever you entered for a model id.
- 2) There is a limited number of items to work with in this fashion.
- 3) You can use "in circulation" items, however you need to take special care to eliminate where they currently appear. This can sometimes be a tricky process.
Special Currencies
It isn't possible to make a new special currency that works with vendor-purchaseable item. Currencies of these natures have their item_template entry referenced to the cost entries in a client dbc file and cannot be changed. You can hijack these currencies for your own use, but then you are limited to the pre-defined cost options. Doing this may also eliminate an existing currency used for other things from your game world.