The grand VSCode Freelancer tooling thread
Locked
Conventional Modding
-
It’s 2020, Freelancer is still alive, and it’s about time we started using modern tooling to mod it.
Since Visual Studio Code is as flexible as it is popular, I thought we might just create tooling so that people who like to mash their keyboard rapidly can work with it to make awesome FL mods.
I’ll start with the simple things: snippets for Solar Archetype, Ship Archetype, and a generic Loadout.
{ "Solar Archetype": { "prefix": "sol", "body": [ "[Solar]", "nickname = $1", "ids_name = ${2:0}", "ids_info = ${3:0}", "type = ${4:SATTELITE}", "DA_Archetype = $5", "material_library = $6", "material_library = fx\\envmapbasic.mat", "envmap_material = envmapbasic", "LODranges = 0, 100000", "mass = ${7:10000}", "solar_radius = ${8:500}", "shape_name = ${9:NAV_outpost}", "hit_pts = ${10:9.99999961690316245E35}" ], "description": "A basic solar archetype" }, "Ship Archetype": { "prefix": "ship", "body": [ "[Ship]", "ids_name = ${2:0}", "ids_info = ${3:0}", "ids_info1 = ${4:0}", "ids_info2 = ${5:0}", "ids_info3 = ${6:0}", "ship_class = ${7:1}", "nickname = $1", "LODranges = 0, 10000", "msg_id_prefix = ${8:gcs_refer_shiparch_lfighter}", "mission_property = can_use_berths", "type = ${9:FIGHTER}", "mass = ${10:100.0}", "hold_size = ${11:45}", "linear_drag = ${12:1.0}", "max_bank_angle = ${13:35}", "camera_offset = ${14:13}, ${15:42}", "camera_angular_acceleration = ${16:0.1}", "camera_horizontal_turn_angle = 20", "camera_vertical_turn_up_angle = 5", "camera_vertical_turn_down_angle = 30", "camera_turn_look_ahead_slerp_amount = 1.0", "hit_pts = ${17:5000}", "explosion_arch = ${18:explosion_cv_fighter}", "surface_hit_effects = 0, small_hull_hit_light01, small_hull_hit_light02, small_hull_hit_light03", "surface_hit_effects = 150, small_hull_hit_medium01, small_hull_hit_medium02, small_hull_hit_medium03", "surface_hit_effects = 300, small_hull_hit_heavy01, small_hull_hit_heavy02, small_hull_hit_heavy03", "steering_torque = ${19:55000.0}, ${20:55000.0}, ${21:48000.0}", "angular_drag = ${22:41000.0}, ${23:41000.0}, ${24:35000.0}", "rotation_inertia = ${25:8400.0}, ${26:8400.0}, ${27:1000.0}", "nudge_force = ${28:30000.0}", "strafe_force = ${29:20000}", "strafe_power_usage = ${30:2}", "bay_door_anim = Sc_open baydoor", "bay_doors_open_snd = cargo_doors_open", "bay_doors_close_snd = cargo_doors_close", "HP_bay_surface = HpBayDoor01", "HP_bay_external = HpBayDoor02", "HP_tractor_source = HpTractor_Source", "num_exhaust_nozzles = ${31:2}", "shield_link = ${32:cv_fighter5_shield01}, HpMount, HpShield01", "hp_type = ${33:hp_gun_special_1}, ${34:HpWeapon01}, " ], "description": "A basic ship archetype" }, "Loadout": { "prefix": "load", "body": [ "[Loadout]", "nickname = $1", "archetype = $2", "equip = ${3:equip_nickname}, ${4:HpSomething}", "cargo = ${5:cargo_nickname}, ${6:1}" ], "description": "A basic generic loadout" } }
Just add it to your ini snippets and start button-mashing your custom content!
Also, feel free to add your own snippets, improve mine, and suggest ideas for plugins.
“Happy hacking!”
-
I started making snippets for mission scripts, following Rasauul’s guidelines.
Here’s what I got so far:
"Misison Trigger": { "prefix": "trig", "body": [ "[Trigger]", "nickname = $1", "system = $2", "Cnd_$3 = $4", "Act_$5 = $6" ], "description": "A typical mission trigger" }, "Misison Objective Message": { "prefix": "nnobj", "body": [ "[NNObjective]", "nickname = $1", "state = ${2:HIDDEN}", "type = ${3:ids}, ${4:0}" ], "description": "A mission objective message without waypoints" }, "Misison Objective Clear": { "prefix": "nnnull", "body": [ "[NNObjective]", "nickname = null", "state = HIDDEN", "type = ids, 21660" ], "description": "A mission objective that clears away the current objective" }, "Misison Objective Mark Solar Object": { "prefix": "nnsol", "body": [ "[NNObjective]", "nickname = $1", "state = HIDDEN", "type = rep_inst, ${2:system}, ${3:ids_text}, 1, ${4:x}, ${5:y}, ${6:z}, ${7:solar_nickname}" ], "description": "A mission objective that puts a waypoint on a specific solar object" }, "Misison Objective Waypoint": { "prefix": "nnwp", "body": [ "[NNObjective]", "nickname = $1", "state = HIDDEN", "type = navmarker, ${2:system}, ${3:ids_text}, ${4:ids_info}, ${5:x}, ${6:y}, ${7:z}" ], "description": "A mission objective that puts a waypoint in open space" }, "Objective List": { "prefix": "objl", "body": [ "[ObjList]", "nickname = $1", "system = ${2:ALL}" ], "description": "A list of objectives for mission NPCs" }, "Objective List Follow": { "prefix": "objfol", "body": [ "[ObjList]", "nickname = $1", "system = ${2:ALL}", "SetPriority = ALWAYS_EXECUTE", "Follow = ${3:ship_name}, ${4:distance_behind}, ${5:x}, ${6:y}, ${7:z}" ], "description": "Gives an NPC orders to follow a certain ship" }, "Objective List Break Formation": { "prefix": "objbreak", "body": [ "[ObjList]", "nickname = $1", "system = ${2:ALL}", "BreakFormation = no_params" ], "description": "Gives an NPC orders to break formation" }, "Objective List Stay in Range": { "prefix": "objrange", "body": [ "[ObjList]", "nickname = $1", "system = ${2:ALL}", "StayInRange = ${3:x}, ${4:y}, ${5:z}, ${6:radius}" ], "description": "Gives an NPC orders to stay in range of a certain radius" }, "Objective List Go To Ship": { "prefix": "objgo", "body": [ "[ObjList]", "nickname = $1", "system = ${2:ALL}", "GotoShip = goto, ${3:ship_name}, ${4:distance}, true, -1" ], "description": "Gives an NPC orders to go to a certain ship" }
Will update with more snips when I get more time