< [Documentation](../Readme.md) / [Modding](Readme.md) / Map Object Format ## Description Full object consists from 3 parts: - Object group - set of objects that have similar behavior and share same identifier in H3 (towns, heroes, mines, etc) - Object type - object with fixed behavior but without fixed appearance. Multiple objects types may share same group - Object template - defines appearance of an object - image used to display it, its size & blockmap. These entries only describe templates that will be used when object is placed via map editor or generated by the game. When new object is created its starting appearance will be copied from template ## Object types - [Rewardable](Map_Objects/Rewardable.md) - Visitable object which grants all kinds of rewards (gold, experience, Bonuses etc...) - [Creature Bank](Map_Objects/Creature_Bank.md) - Object that grants award on defeating guardians - [Dwelling](Map_Objects/Dwelling.md) - Object that allows recruitments of units outside of towns - [Market](Map_Objects/Market.md) - Trading resources, artifacts, creatures and such - [Boat](Map_Objects/Boat.md) - Object to move across different terrains, such as water ## Object group format ``` javascript { "myCoolObjectGroup": { // Mandatory for new objects, // human readable name, localized "name": "My cool object", //defines C++/script class name that handles behavior of this object "handler" : "mine", // default values, will be merged with each type during loading "base" : { }, "types" : { } } } ``` ## Object type format ``` javascript { "myCoolObject": { // Additonal parameters that will be passed over to class that controls behavior of the object // See object-specific properties of different object types "propertyA" : "value", "propertyB" : 12345 // How valuable this object is to AI "aiValue" : 1000, // Sounds assigned to this object "sounds" : { // Ambient sounds that plays when current hero is near this object "ambient" : [ "" ], // Sounds that plays when hero visits this object "visit" : [ "" ], // Sounds that play when this object is removed from the map "removal" : [ "" ], }, // Data for random map generator that describes how object should be placed. // If this entry is missing object will not be placed by RMG "rmg" : { // How valuable this object is, 1k = worthless, 20k = relic level "value" : 5000, // Optional, how many of such objects can be placed on map "mapLimit" : 25, // Optional, how many of such objects can be placed in one zone "zoneLimit" : 4, // Rarity of object, 10 = rare, 100 = common "rarity" : 50 } // default values, will be merged with each template during loading // mostly needed to avoid redefining whole template to change 1-2 fields "base" : {