This would be better as a field in Build Arm blueprints, using a similar boolean logic to buildable_types, rather than an array of blueprints. Also links with the proposal to allow unit IDs in the buildable_types field.
Suggested Flag: impacts_on_water_surface Normal Location: in a ammo .json file. Variables accepted: true/false Default value: false Expected Behaviour: If false, ammo behaves the way it behaves right now(passes through water), if true, ammo explodes when it hits water as if hit target/ground. Example: In /pa/ammo/base_shell/base_shell.json: "impacts_on_water_surface": true . Add WL_Seafloor target layer to all shell weapons. Now shell weapons can fire at commander when it is in water, but if it is deep enough it will be safe. The issue is important because it doesn't make sense that antiland weapons can't fire at units that are cleary above the water level.
Suggested Flag: "splash_damages_self" Normal Location: in a ammo .json file. Variables accepted: true/false Default value: true Prerequisites: "splash_damages_allies": true Expected Behaviour: Prevents the ammo from doing splash damage on itself. Example: In /pa/ammo/cannon_uber/cannon_uber.json: "splash_damages_self": false The uber cannon will now do damage to friendly units but not to the commander that fired it. Because the Uber Cannon needs to become a D-Gun but that can't happen as long as splash damage will hurt the commander.
Suggested Flag: "devs_listening" Normal Location: in this thread Variables accepted: on Default value: on Prerequisites: "sense_of_humor, desire_to_help" Expected Behaviour: Devs pay attention to requests for fundamental components from modders eager to expand the user base of the game. Example: Devs read this thread and implement what they can or at least explain why they can't/won't. >.> (Sorry for the kind of snarky off topic... I'll delete this if someone seriously wants me too, but I'd rather not hehe.) But seriously, I'd really like to see an auto_ version of just about every basic command. The reclaim and enemy reclaim are no brainers to me. How did auto repair make it in but auto reclaim didn't? That really surprises me.
Suggested Flags: "damage_lifetime" "splash_damage_lifetime" Normal Location: ammo .json file. Variables accepted: number (seconds) Default value: 0 (reacts like normal) Prerequisites: none Expected Behaviour: Prolongs damage over a set lifetime based on the flags above. Like napalm. Example: A new unit that shoots electric pellets can shock the target over time rather than dealing instantaneous damage per shot.
Suggested Flag: "creates_CSG" Normal Location: in any ammo .json file. Variables accepted: any additive or subtractive CSG filename or "none". Default variable: none Prerequisites: ammo impacts land unit or the terrain. Expected Behaviour: if set the ammo applies the specified CSG to the planet at the site of impact. Example: a nucleair missile could leave a crater, a bulldozer could use a tool that flattens terrain and fills in lakes, terraforming becomes possible. A bulldozer could dig trenches with subtractive CSG's, or throw up natural walls with additive CSG's, you could use heavy weaponry to crush a mountain to rubble, and bulldoze the terrain into flat base-ready terrain. The current planetsmash already does this, please expose it for us to tinker with.
That feature basically got removed from the game with the Asteroid update. CSG updates aren't exactly possible, e.g. navigation, collision tests and various other features did never nor will never use the updated planet mesh. Only the visuals have ever been updated properly.
I'd like a useability type of "arm_deploy_proj" that puts a unit that uses it into a deploy projectile. In other words I want a proper unit cannon.
A request for anit-entity weapons: Can we please have a universal value? For example: Code: "anti_entity_targets": [ "All" ], This means the weapon could shoot down anything. Typing every single ammo json would be insane. Basically this would make shields less tedious.
The only thing* blocking composable server mods is this: the server will not execute build orders for units not listed in unit_list.json. I presume it's pre-calculating the buildable units somewhere. * I can't actually be certain it's the only thing since I can't test without this problem. I can assert: - If I paste an unlisted unit in sandbox mode, it works fine - I can add an unlisted unit to the build bar with correct buildable determination, as well as build hover info and world hover info. - Clicking the unit build bar icon causes a message to be sent to the server with that unit spec id in it, and the server prints recvCmd() on stdout. - If it is in unit_list.json, then it builds correctly.