Raw model (for completeness)
{
"meta": {
"id": "b22ed996-7b3b-41f1-b046-f3acc01d7ac9",
"sha1": "6b5c2b3251b8c712a493daaa8e12a0c02b021ef7",
"sha256": "c48319a9d5a0287294574a00d0bfdafb0dbd114e15b3145c75378282fbd6d356",
"filenames": [
"sectorcraft-beta-0.4.pk3"
],
"additional": {
"engines": [
"ZDOOM"
],
"iwad": [
"TNT"
],
"filename": null,
"added": "2013-04-18 21:30:21",
"locked": false,
"canDownload": true,
"adult": false,
"hidden": false,
"name": null,
"description": null,
"maps": null,
"graphicOverrides": null,
"screenshots": {
"SCRAFT01": "SCRAFT01.png",
"SCRAFT02": "SCRAFT02.png",
"scraft01": "scraft01.png",
"scraft02": "scraft02.png"
},
"palettes": null,
"categories": null
},
"flags": {
"locked": false,
"canDownload": true,
"adult": false,
"hidden": false
},
"added": "2013-04-18 21:30:21",
"file": {
"type": "PK3",
"size": 600565,
"url": "https://wadarchive2.nyc3.digitaloceanspaces.com/6b5c2b3251b8c712a493daaa8e12a0c02b021ef7/6b5c2b3251b8c712a493daaa8e12a0c02b021ef7.pk3.gz",
"corrupt": false
},
"content": {
"maps": [
"SCRAFT01",
"SCRAFT02"
],
"counts": {
"endoom": 0,
"graphics": 1,
"lumps": 18,
"maps": 2,
"palettes": 0
},
"engines_guess": [
"ZDOOM"
],
"iwads_guess": [
"TNT"
]
},
"text_files": [
{
"source": "pk3",
"name": "animdefs.txt",
"contents": "texture\tWFALL1\t\trange\tWFALL4 \ttics 8\ntexture LAVFALL1\trange \tLAVFALL4\ttics 8"
},
{
"source": "pk3",
"name": "decorate.txt",
"contents": "//======================================\n// BASE ACTORS\n//======================================\n\n// New player class with all the tools.\nActor SectorCrafter : DoomPlayer\n{\n\tPlayer.DisplayName \"SectorCrafter\"\n\n\t// New tools!\n\tPlayer.StartItem \"SC_PasteTool\"\n\tPlayer.StartItem \"SC_HeightTool\"\n\tPlayer.StartItem \"SC_LightTool\"\n\tPlayer.StartItem \"SC_TextureTool\"\n\tPlayer.StartItem \"SC_PasteTool\"\n\n\t// Default weapons.\n\t/*\n\tPlayer.StartItem \"Fist\"\n\tPlayer.StartItem \"Pistol\"\n\tPlayer.StartItem \"Clip\" 10\n\t*/\n}\n\nActor SC_ToolProjectile : FastProjectile\n{\n\tProjectile\n\tSpeed 184\n\tRadius 1\n\tHeight 1\n\tDamage 0\n\n\t-NOBLOCKMAP\n\t+SKYEXPLODE\n\t+RIPPER\n\n\tstates\n\t{\n\tSpawn:\n\t\tPUFF A 1 Bright\n\t\tLoop\n\tDeath:\n\t\tStop\n\t}\n}\n\n/*\nActor SC_Tool : Weapon\n{\n\t+UNDROPPABLE\n\t+NOALERT\n\n\tStates\n\t{\n\tSpawn:\n\t\tgoto ToolSpawn\n\t\tStop\n\tReady:\n\t\tNULL A 0 A_JumpIfInventory(\"SC_CopyButton\", 1, \"TriggerCopy\")\n\t\tNULL A 0 A_JumpIfInventory(\"SC_ClearButton\", 1, \"TriggerClear\")\n\t\tGoto ToolReady\n\tSelect:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tNULL A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tGoto ToolSelect\n\tDeselect:\n\t\tGoto ToolDeselect\n\n\tTriggerCopy:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tGoto Copy\n\tTriggerClear:\n\t\tNull A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tGoto Clear\n\n\t// Stub states.\n\tToolSpawn:\n\t\tSHOT A -1\n\t\tStop\n\tToolReady:\n\t\tSHTG A 1 A_WeaponReady\n\t\tGoto Ready\n\tToolSelect:\n\t\tSHTG A 1 A_Raise\n\t\tLoop\n\tToolDeselect:\n\t\tSHTG A 1 A_Lower\n\t\tLoop\n\tFire:\n\t\tGoto Ready\n\tAltFire:\n\t\tGoto Ready\n\tCopy:\n\t\tGoto Ready\n\tClear:\n\t\tGoto Ready\n\t}\n}*/\n\n// Buttons.\nActor SC_CopyButton : Inventory { Inventory.MaxAmount 1 }\nActor SC_ClearButton : Inventory { Inventory.MaxAmount 1 }\n\n//======================================\n// PER-PLAYER DATA\n//======================================\n\nActor SC_SelectedTexture : Inventory {}\n\nActor SC_BufferInfo : Inventory {} // Holds bitfield about buffer contents.\n\nActor SC_CopiedFHeight : Inventory {}\nActor SC_CopiedCHeight : Inventory {}\nActor SC_CopiedLight : Inventory {}\nActor SC_CopiedFTexture : Inventory {}\nActor SC_CopiedCTexture : Inventory {}\n\n//======================================\n// HEIGHT TOOL\n//======================================\n\nActor SC_PushFlat : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(1, 0, 1)\n\t\tStop\n\t}\n}\n\nActor SC_PullFlat : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(1, 0, 0)\n\t\tStop\n\t}\n}\n\nActor SC_CopyHeight : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(5, 0, 1)\n\t\tStop\n\t}\n}\n\nActor SC_HeightTool : Weapon\n{\n\t+UNDROPPABLE\n\n\tStates\n\t{\n\tSpawn:\n\t\tSHOT A -1\n\t\tStop\n\tReady:\n\t\tSHTG A 1 A_WeaponReady\n\t\tNULL A 0 A_JumpIfInventory(\"SC_CopyButton\", 1, \"Copy\")\n\t\tNULL A 0 A_JumpIfInventory(\"SC_ClearButton\", 1, \"Clear\")\n\t\tGoto Ready\n\tSelect:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tNULL A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tSHTG A 1 A_Raise\n\t\tLoop\n\tDeselect:\n\t\tSHTG A 1 A_Lower\n\t\tLoop\n\n\tFire:\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_PushFlat\")\n\t\tGoto Ready\n\tAltFire:\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_PullFlat\")\n\t\tGoto Ready\n\tCopy:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_CopyHeight\")\n\t\tGoto Ready\n\tClear:\n\t\tNULL A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tSHTG A 5 ACS_Execute(6, 0, 1)\n\t\tGoto Ready\n\t}\n}\n\n//======================================\n// LIGHT TOOL\n//======================================\n\nActor SC_IncreaseLight : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(2, 0, 16)\n\t\tStop\n\t}\n}\n\nActor SC_DecreaseLight : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(2, 0, -16)\n\t\tStop\n\t}\n}\n\nActor SC_CopyLight : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(5, 0, 2)\n\t\tStop\n\t}\n}\n\nActor SC_LightTool : Weapon\n{\n\t+UNDROPPABLE\n\n\tStates\n\t{\n\tSpawn:\n\t\tSHOT A -1\n\t\tStop\n\tReady:\n\t\tSHTG A 1 A_WeaponReady\n\t\tNULL A 0 A_JumpIfInventory(\"SC_CopyButton\", 1, \"Copy\")\n\t\tNULL A 0 A_JumpIfInventory(\"SC_ClearButton\", 1, \"Clear\")\n\t\tGoto Ready\n\tSelect:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tNULL A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tSHTG A 1 A_Raise\n\t\tLoop\n\tDeselect:\n\t\tSHTG A 1 A_Lower\n\t\tLoop\n\n\tFire:\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_IncreaseLight\")\n\t\tGoto Ready\n\tAltFire:\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_DecreaseLight\")\n\t\tGoto Ready\n\tCopy:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_CopyLight\")\n\t\tGoto Ready\n\tClear:\n\t\tNULL A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tSHTG A 5 ACS_ExecuteAlways(6, 0, 2)\n\t\tGoto Ready\n\t}\n}\n\n//======================================\n// TEXTURE TOOL\n//======================================\n\nActor SC_SetTexture : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(3, 0)\n\t\tStop\n\t}\n}\n\nActor SC_CopyTexture : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(5, 0, 3)\n\t\tStop\n\t}\n}\n\nActor SC_TextureTool : Weapon\n{\n\t+UNDROPPABLE\n\n\tStates\n\t{\n\tSpawn:\n\t\tSHOT A -1\n\t\tStop\n\tReady:\n\t\tSHTG A 1 A_WeaponReady\n\t\tNULL A 0 A_JumpIfInventory(\"SC_CopyButton\", 1, \"Copy\")\n\t\tNULL A 0 A_JumpIfInventory(\"SC_ClearButton\", 1, \"Clear\")\n\t\tGoto Ready\n\tSelect:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tNULL A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tSHTG A 1 A_Raise\n\t\tLoop\n\tDeselect:\n\t\tSHTG A 1 A_Lower\n\t\tLoop\n\n\tFire:\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_SetTexture\")\n\t\tGoto Ready\n\tAltFire:\n\t\tSHTG A 5 ACS_ExecuteAlways(10, 0, tid - 1000) // Texture picker.\n\t\tgoto Ready\n\tCopy:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_CopyTexture\")\n\t\tGoto Ready\n\tClear:\n\t\tNULL A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tSHTG A 5 ACS_ExecuteAlways(6, 0, 3)\n\t\tGoto Ready\n\t}\n}\n\n//======================================\n// PASTE TOOL\n//======================================\n\nActor SC_FlatPaste : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(4, 0, 0)\n\t\tStop\n\t}\n}\n\nActor SC_SectorPaste : SC_ToolProjectile\n{\n\tstates\n\t{\n\tDeath:\n\t\tPUFF A 3 Bright ACS_ExecuteAlways(4, 0, 1)\n\t\tStop\n\t}\n}\n\nActor SC_PasteTool : Weapon\n{\n\t+UNDROPPABLE\n\n\tStates\n\t{\n\tSpawn:\n\t\tSHOT A -1\n\t\tStop\n\tReady:\n\t\tSHTG A 1 A_WeaponReady\n\t\tNULL A 0 A_JumpIfInventory(\"SC_CopyButton\", 1, \"Copy\")\n\t\tNULL A 0 A_JumpIfInventory(\"SC_ClearButton\", 1, \"Clear\")\n\t\tGoto Ready\n\tSelect:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tNULL A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tSHTG A 1 A_Raise\n\t\tLoop\n\tDeselect:\n\t\tSHTG A 1 A_Lower\n\t\tLoop\n\n\tFire:\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_FlatPaste\")\n\t\tGoto Ready\n\tAltFire:\n\t\tSHTG A 5 A_FireCustomMissile(\"SC_SectorPaste\")\n\t\tGoto Ready\n\tCopy:\n\t\tNULL A 0 A_TakeInventory(\"SC_CopyButton\", 1)\n\t\tSHTG A 5 // \"COPY ALL PROPERTIES\" NOT IMPLEMENTED YET\n\t\tGoto Ready\n\tClear:\n\t\tNULL A 0 A_TakeInventory(\"SC_ClearButton\", 1)\n\t\tSHTG A 5 ACS_ExecuteAlways(6, 0, 0) // Clear all properties.\n\t\tGoto Ready\n\t}\n}"
},
{
"source": "pk3",
"name": "keyconf.txt",
"contents": "ClearPlayerClasses\nAddPlayerClass SectorCrafter\n\nWeaponSection \"SectorCraft\"\n\nSetSlot 2 SC_HeightTool\nSetSlot 3 SC_LightTool\nSetSlot 4 SC_TextureTool\nSetSlot 5 SC_PasteTool\n\nalias sc_copy \"puke 20\"\nalias sc_clear \"puke 21\"\n\nAddKeySection \"SectorCraft\" SectorCraft\nAddMenuKey \"Copy\" sc_copy\nAddMenuKey \"Clear paste buffer\" sc_clear\n\nDefaultBind c sc_copy\nDefaultBind v sc_clear"
},
{
"source": "pk3",
"name": "loadacs.txt",
"contents": "SECTORCRAFT"
},
{
"source": "pk3",
"name": "mapinfo.txt",
"contents": "map SCRAFT01 \"SectorCraft Small\"\n{\n\tlevelnum = 101\n\tsky1 = \"SKY1\"\n}\n\nmap SCRAFT02 \"SectorCraft Medium\"\n{\n\tlevelnum = 102\n\tsky1 = \"SKY1\"\n}"
}
]
},
"maps": [
{
"map": "MAP01",
"title": "MAP01",
"format": "hexen",
"stats": {
"things": 1,
"linedefs": 8324,
"sidedefs": 16644,
"vertices": 4229,
"sectors": 4097,
"segs": 0,
"ssectors": 0,
"nodes": 0,
"textures": {
"F_SKY1": 4101,
"GRASS1": 20481
}
},
"monsters": {
"total": 0,
"by_type": {},
"by_category": null
},
"items": {
"total": 0,
"by_type": {},
"ammo_by_category": null,
"weapons_present": null
},
"mechanics": {
"teleports": false,
"keys": [],
"secret_exit": false
},
"difficulty": {
"uv_monsters": 0,
"hmp_monsters": 0,
"htr_monsters": 0,
"uv_items": 0,
"hmp_items": 0,
"htr_items": 0
},
"compatibility": "hexen",
"metadata": {
"title": null,
"music": null,
"source": "marker"
},
"images": [
{
"id": "0f320e65-133d-4402-93fa-72d4ee16b009",
"url": "https://wadimages2.nyc3.digitaloceanspaces.com/6b5c2b3251b8c712a493daaa8e12a0c02b021ef7/MAP01/images/0.webp",
"type": null
},
{
"id": "95678fed-d0b6-4b40-8deb-3b0533e11cef",
"url": "https://wadimages2.nyc3.digitaloceanspaces.com/6b5c2b3251b8c712a493daaa8e12a0c02b021ef7/MAP01/pano/pano_0.webp",
"type": "pano"
}
]
}
]
}