Object Format

From VCMI Project Wiki
Revision as of 10:22, 28 January 2013 by AVS (talk | contribs) (Object format)
Jump to: navigation, search

Object type format

Current draft. WiP.

{
   "objectTypes": 
   [
	
	"myCoolObject":{
 		//numeric ID, mandatory for h3/wog objects, shall be unique is defined
 		//not recommended for VCMI objects, shall be unique is defined, default: engine defined
		"id":689,
		

		//if true, activable tiles are not visitable, but activable from neighbouring tile. 
		//default false
		"blockVisit" : true,

		//if true object can be visited from top
		//default false
		"topVisitable" : false,

		//range of numeric sub id`s, mapped to this object type. Optional for h3/wog objects. 
		//not recommended for VCMI objects. 
		"subIdMax":0,
		"subIdMin":1,

		//defaults for objects of this type (see below)
		//optional
		//Note: objects of same type that have random object, should have identical masks
		"instance":
		{
		"mask":[
			"00000000",
			"00000000",
			"00000000",
			"0000VVVV",
			"0000VBBB",
			"0000VBBA"],
		}

	}

   ]
}

Example:

{
   "objectTypes": 
   [
	
	"artifact":{
		"id":5,
		"blockVisit" : true
	},

	"treasureChest":{
		"id":101,
		"subIdMax":0,
		"blockVisit" : true
	},

	"treasureChestWoG":{
		"id":101,
		"subIdMin":1,
		"blockVisit" : true
	},

	"pyramid": {
		"id":63,
		"subIdMax":0 //subtype 0
	},

	"wogObject": {
		"id":63,
		"subIdMin":1 //subtype> 0
	}

   ]
}

Object format

Current draft. WiP.

  • Used by editor, RMG, (???) by engine for random new objects.
  • analogue of "ZOBJCTS.TXT", "ZEOBJTS.TXT", "ZAOBJTS.TXT" from WoG.
{"objects":[

	{
		//mandatory
		//resource ID  of animation, relative to SPRITES(def file or json file (*) )
		"animation":"DEFNAME",
		
		//mandatory
		//bit mask of passability. (???) use more readable array and|or predefined templates
		"passability":[
			"11111111", 
			"11111111",
			"11111111",
			"11111111",
			"11111111",
			"11111110"],

		//mandatory
		//bit mask of activatable tiles (???) use more readable array and|or predefined templates
		"actions": [
			"00000000",
			"00000000",
			"00000000",
			"00000000",
			"00000000",
			"00000001"],

		// mandatory
		// list of tiles from which this object is visible, mostly needed for server
		// to detect if object is visible by player
		"visibility": [
			"000",
			"001",
			"011"],

		//alternative to actions, passability, visiblity
		// 0=not visible, passable
		// V=visible, passable
		// B=blocked, visible
		// A=activable, visible, passable depending on blockVisit flag of object type.
		//top and left leading zeros are optional and in fact ignored
		//bottom, right corner of mask = bottom right corner of animation frame
		//animation shall not exceed visible mask space
		"mask":[
			"00000000",
			"00000000",
			"00000000",
			"0000VVVV",
			"0000VBBB",
			"0000VBBA"],

		//mandatory (?)
		"id":"objectType", //object type from object type config. (!) Only string id`s.

		//allowed terrain types to place object too, can be overridden in editor. Affects also RMG.
		"landscape":["dirt", "sand"],

		// List of tags that can be used to locate object in map editor
		"tags":["dirt", "sand", "mine"],

		//mandatory
		//numeric ((?) needed) or full string object id
		//(?) id not required if subid in full identifier
		"subId":34,//or "objectType.objectName" f.e. "creature.pikeman" 
		
		//
		"group":"", 

		//optional, default false,
		"isOverlay": true, //false, true

		//zindex, optional, default 0, 
		//NOTE: overlay objects are always lower than non overlays
		"zIndex": 0//

	}

]}


Modding related articles

Main articles
Modding changelog Modding guidelines Mod Handler


Formats
Mod file Format
Town Format Creature Format Hero Classes Format
Artifact Format Animation Format Hero Format
Bonus Format Object Format Spell Format


Work-in-progress formats
Building bonuses Map format
Bonus Type Format Random map template


Outdated pages
Mod system proposal