Skip to content
Hedera edited this page Oct 20, 2025 · 14 revisions

File names & Parameters

cards.json

Simple json table defining fundamental stats and keywords. New entries here will be functional but not appear in game unless forced or use correct sprites.

Parameters

NOTE: most of these are not required! only include when relevant!

Parameter Entry Result
data "0" or string "0" gives no data entry in datacloud, otherwise any string here will appear with "View Data" button.
type 1 or 2 unknown, probably determines tech cards (2) or deployable units (1)
dmg 0 or more base damage. -1 for no damage component at all
hp 0 or more base hull. constructs have 0
size 0 or more, max of 3 is best unit's orbit size. can be anything, but never more than 3 in game
timer 0 or more base timer. 0 for no timer at all.
boss_up dongle id upgrade given by Reward Program coordinate, only for bosses
attacks 1 or more more than 1 means multistrike
effect_count 0 or more amount of effects to read next
effect_X type, variant, status, and/or power X is 1,2,etc. up to effect_count, one entry per effect. see Internal IDs for effects.
name string plaintext name the player sees. useful for searching.
comms comms id specified comms dialog set, seems to concatenate with conditions in comms.json
faction "heg" "lt" "tu" "con" "flo" "et" use unknown, possibly for loot pools?
por_obj "obj_unit_hos" "obj_unit_lt" "obj_unit_tu" "obj_unit_con" "obj_unit_flo" "obj_unit_et" "obj_unit_universal" use unknown, seems to determine default sprite if no sprite is in data.js. factional, heg is GP, universal is mercs.
dc_cond unlock condition id datacloud unlock condition
por_angle rotation applied in card view, clockwise in degrees
por_scale decimal float scalar multiplier to card view, mostly for shrinking big sprites
deck_group 0 to 3 special ordering in deck view, Megaship is 0, auxes are 1, flagships are 2, constructs are 3. Some starting cards are also 3.
por_back cp_ something filename of card_por_ asset abbreviated as cp_
jump_fx 1 to 4 jump effect, unknown which corresponds to which
gun_mounts 0 or more amount of turreted guns, up to its sprite's number of mounting points (see data.js). No more than 4 in base game
death_fx_power 1 to 5 explosion strength on death. only N-Mine uses 5
death_total 1 ??? what the fuck is this? only on constructs
death_time_max 0.1 to 6 not really known, presumably how long death animation lasts, Megaships are all 6, plus some extras

data.js

Declares gdjs.projectData, defining most game assets. In particular, handles sprites, animations, mounting points for ships, and data cloud position. Demonstrated with Field Frigate, or unit_lt_field_cutter.

  • Entry 1, initial import of all frames
{"file":"unit_lt_field_cutter_0_0.png","kind":"image","metadata":"","name":"unit_lt_field_cutter_0_0.png","smoothed":false,"userAdded":true},
{"file":"unit_lt_field_cutter_1_0.png","kind":"image","metadata":"","name":"unit_lt_field_cutter_1_0.png","smoothed":false,"userAdded":true},
{"file":"unit_lt_field_cutter_2_0.png","kind":"image","metadata":"","name":"unit_lt_field_cutter_2_0.png","smoothed":false,"userAdded":true},
{"file":"unit_lt_field_cutter_3_0.png","kind":"image","metadata":"","name":"unit_lt_field_cutter_3_0.png","smoothed":false,"userAdded":true},
  • Entry 2, reimport to internal file: pixels/units/ (only for _0_0?)
{"file":"unit_lt_field_cutter_0_0.png","kind":"image","metadata":"","name":"pixels/units/unit_lt_field_cutter_0_0.png","smoothed":false,"userAdded":false},
  • Entry 3, define animation very long despite being only 4 frames (0-3), shown in order 0123130232101203 with point definitions and collision shapes for each.
{"name":"pl_lt_field_cutter",
"useMultipleDirections":false,
"directions":[
	{"looping":true,
	"timeBetweenFrames":0.068,"
	sprites":[
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_0_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_1_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_2_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_3_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_1_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_3_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_0_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_2_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_3_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_2_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_1_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_0_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_1_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_2_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_0_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		},
		{"hasCustomCollisionMask":true,
		"image":"unit_lt_field_cutter_3_0.png",
		"points":[
			{"name":"Mount1","x":108.0,"y":30.0},
			{"name":"Mount2","x":108.0,"y":78.0},
			{"name":"Comms","x":121.0,"y":54.0},
			{"name":"HangarF","x":126.5,"y":53.5},
			{"name":"HangarB","x":127.0,"y":54.0},
			{"name":"AAMount1","x":86.0,"y":44.0},
			{"name":"AAMount2","x":86.0,"y":64.5}
		],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":74.0,"y":54.0},
		"customCollisionMask":[[
			{"x":29.0,"y":56.0},
			{"x":68.0,"y":18.0},
			{"x":122.0,"y":54.0},
			{"x":62.0,"y":89.0}]]
		}
	]}
]},
  • Entry 4, possibly data cloud? doesn't define points or collision mask, "animation" of one nonlooping frame
{"name":"aux_lt_sh",
"useMultipleDirections":false,
"directions":[
	{"looping":false,
	"timeBetweenFrames":0.08,
	"sprites":[
		{"hasCustomCollisionMask":false,
		"image":"pixels/units/unit_lt_field_cutter_0_0.png",
		"points":[],
		"originPoint":{"name":"origine","x":74.0,"y":54.0},
		"centerPoint":{"automatic":true,"name":"centre","x":0.0,"y":0.0},
		"customCollisionMask":[]}
	]}
]},
  • Entry 5, large pixels/ list, unsure why
{"name":"pixels/units/unit_lt_field_cutter_0_0.png"}
  • Entry 6, final frame list, unsure why
{"name":"unit_lt_field_cutter_0_0.png"},
{"name":"unit_lt_field_cutter_1_0.png"},
{"name":"unit_lt_field_cutter_2_0.png"},
{"name":"unit_lt_field_cutter_3_0.png"},

Clone this wiki locally