Are these mods possible?

I'm curious if it's possible to change subs depth with a toggle so they can be shallow (can be ground fired) to deep (could not be ground fired)

I'm also curious if we can make any unit fly with a toggle, including subs.

Thanks for any help!

all possible, wie ease even as the differs between shallow and deep water anyways and flying units do need to need anyways putting it behind a toggle or switch is not that hard.

@veteranashe you cannot toggle a unit to fly.
It's an entirely different movement type.
What you CAN do, however, is cheat.
As in, remove the existing unit and in its place put the same unit, copying its current stats, orientation, but this new unit is a flying unit that's landed. Same as when it lands - you remove it and place a land unit in its place, copying current stats & orientation.

I did this with my "Sloth" Legendary class experimental, in my mod Survival Maybem & bo balance". At work now so I don't know the unit's designation, but cheat spawn it under Sloth , and it will spawn.
You can take it from there.

I myself used a Kykhu Oss, or similar, unit, from the so called mod someone made, to make mine.

@veteranashe @DDDX
Of course, it is not possible to convert a land unit directly into an air unit. But there are some tricks you can use to do it. However, the first method, which has been used for the Kykhu Oss is AI technically problematic, as the land unit is completely deleted from the game and replaced by a new air unit or vice versa.

I have found an another Soulution to make it possible.
In my upcoming Unit Pack: Commander Survival Kit Units (short CSK Units) they will be a few UEF Units which have Access to the Jetpack Ability. Short Overview how it works: A Air Dummy Unit without an Visible Model will be spawned at the position of the Land Unit by clicking on an Toggle Button. The Land Unit will be attached on the Air Dummy and Transported to the Target Move Location, which has been set by the Player before. In other Words Order the Land Unit to Move to an specific Location, Press the Jetpack Ability Button and the Land Unit will fly to the Target Location with the Air Dummy ;). If the Air Dummy arrives at the Target Location the Land Unit will be deployed and the Air Dummy will be deleted from the Game after that. Unlike other Methods, which have been tried in the past the Land Unit will Not be deleted from the Game and can use its Jetpack Ability anytime.

In the Current Development Version of CSK Units on my GitHub Repository. There are two UEF Units which have Access to this Jetpack Ability. An Tech 1 Jetpack Mech Marine and the Nix Tech 3 Multifunctional Assault Bot. You can try them Out If you want.

Nice a jetpack mech marine, that's epic

@cdrmv uu that's cool.
Mind if I use that for myself, in my survival mod?

Will check it out, am curious how you handled the move order to the air unit based on the previous move order.
I agree, it's much more elegant. Might I suggest, if giving that ability to a bigger unit, youi also do an AoE damage to the landing zone, as part of the ability? So not only do you surprise move where you previously couldn't, you also slam the ground as you arrive there.

@dddx
I don't have anything against it If someone else want to use this Jetpack Ability in their own Mods. But don't forget to give the Credits to me and to my Commander Survival Kit Project which is the original Source of this Jetpack Ability. πŸ˜‰

Regarding to the Jetpack Ability:
You will probably notice that the Air Dummy will Move slowly with the attached Landunit to the Target Location to unload it.
I have analyze this already and did a few Experiments and found an workable fix. Currently I didnt have Integrated it yet to the Code so you can expect future Updates regarding to this Ability with new Improvements from my Side. Of course If you do you own Modifications and Improvements on the Code it would be nice If you share them with me. πŸ˜‰

The Ability is using these two Functions:
local Oldlocation = self:GetPosition()
local MovePos = self:GetCurrentMoveLocation()

The Variable Oldlocation saves the Current Position of the Land Unit. The Variable MovePos saves the Current Move Location of the Land Unit. The Variable Oldlocation is used to Spawn the Air Dummy on the Location of the Land Unit If you click on the Ability Button. The Variable MovePos is used in the IssueTransportUnload Function which Orders the Air Dummy to Move to the Target Move Location to Deploy the Land Unit there.

Regarding to the Suggestion:
The Code is actually really flexible. So it can be expanded and used on larger Units as Well. You Just need the Air Dummy Unit, the Code and modify it so as you want. It is actually possible to make an Slam Arrival Sequence for larger Jetpack Units. The Aeon Experimental Habitat Walker in CSK Units is using an Arrival Sequence If his Build Process is completed. So the Walker will coming from the Planets Orbit and causes an Arrival Impact Effect on the Ground and Rises from it. A similar Sequence can be added to larger Jetpack Units as Well but the Code needs to be expanded with this Feature. I will add some more Units with this Jetpack Ability soon into CSK Units. So i will introduce this Feature into the Mod as Well. πŸ˜‰

If you or anyone else has any Questions or Suggestions let me know here or on the official Commander Survival Kit Post:
https://forum.faforever.com/topic/6034/commander-survival-kit-a-new-sim-mod/

(Flash back to the old 4DC days)

While Air units can "land", and thus temporarily change layers, they cannot be permanently swapped. Thus locking them into a specific mode of travel. The Kykhu Oss, transformed via "replacement" method creating a new unit, passing the significant details, and then deleting the former. The biggest issue we encountered was saving / copying orders from one unit mode to the other. (It was possible, but only just) The AI especially had problems with this, as effectively the unit was deleted from play. With the newly spawned unit not able to be reassociated with the AI of the former. Optimus tried at length to find a work around without much success. Not that the AI was well understood at the time either, as many of the AI bells and whistles are internal to the game engine.

Note: The Cybran Naval walker got around this by having a workaround coded directly into the game engine. Thus enabling them to use the same unit for both Sea and Land layers. Far as I know of the unit just simply shifts from one animation set to another but otherwise its all seamlessly handled engine-side.

At one point we had a version of the Kykhu Oss that was comprised of two units. A visible and invisible unit that were both interlinked. We'd could easily control which unit was selected, visible and was subject to attacks. While this worked out great, it did have the drawback of using two unit counters. No matter what we tried, we were never able to spawn a dummy unit that didn't count against the players unit-counter.

In hindsight, I could of easily used projectiles, just having the "land" unit leap-frog from point to point. Effectively, we'd add a dummy weapon to the unit and have it target / fire on the location we wish to jump to. The projectile created would be invisible and would use a helper-bone to attach the firing unit to. On impact the unit would be removed from the projectile that's immediately deleted from play. Thing to watch out for here is that the units hitbox could impact the ground / water before it's helper-projectile, likely damaging or destroying the unit. This can be prevented by making the projectiles hit-sphere the diameter that's equal to the units largest XYZ dimension. Though also keep in mind that the games tick-rate is poo poo, thus what we perceive as an impact may or may not occur in the same game "tick".

@CDRMV : I'm betting that the JetPack mod will run into errors if the game is at or near its max unit count. Simply put, you'll be unable to spawn a helper unit into play if your unit counter is already maxed. That is unless the FAF folks corrected the unit count problems my 4DC team encountered.

You could try using the projectile methods as I've detailed above. Just use the units main bone as the weapon, while not requiring it to aim. Just add the requirement that the unit face towards the target before firing. The helper_projectile spawns in (fires), runs its Lua, to attach to parent unit. Once fired, you can remove the parent unit from the projectile as it's now inherited the projectiles velocity and direction. It should continue on to impact the target location, after the helper is removed. Keep in mind that many units don't survive being dropped from a transport, so it stands to reason that the JetPacks could lead to a units death from time to time. There is a Lua for this event as that you could override within your jetpack units Lua. The override would work only for that unit if done in this way, making it compatible with most everything else.

Edit: You may need to add a bone to your JetPack unit in Blender to get the projectile method to work. Reason this may be is that the "bone" must face in the direction you want the projectile to travel. Thus adding a "helper" bone to the units main bone via Blender should be pretty easy. Just have the units updated mesh in the /unit file with its bp. When you call upon the bone via the weapon blueprint and associated Lua, you'll need to reference the name you've chosen. Something Simple like "Helper" is usually good as this doesn't interfere with any of the other set bones. Otherwise you risk breaking the units animations. An alternate method is to create an "entity" that's attached to your unit. I think, this entity can in itself act as a weapon bone. Like i said, its been a long while. (10 years)

@resin_smoker
Well what about the Seraphim Experimental Assault Bot "Ythotha" which spawns the Unidentified Residual Energy Signature If it dies? The Unidentified Residual Energy Signature Is an Dummy Unit (XSL0402) from the Game itself and uses the Unit Blueprint Variable Capcost = 0 which makes it able to be Not count in the UnitCap.

I don't know if you've tried it with this unit in the past regarding the problem with the unit cap, but if not, the following questions need to be answered here:

Does the Error you mentioned appear on this as well If you reach the UnitCap?

Is the Unidentified Residual Energy Signature still spawning here?

My Air Dummy Unit for the Jetpack Ability is currently Not using the Variable Capcost = 0 in its Unit Blueprint File which causes the Error If I reach the UnitCap you mentioned in an Test which I have do Yesterday in the Steam Version of the Game. So I can confirm that but If I add the Variable CapCost = 0 to the Unit Blueprint of the Air Dummy Unit I think it will Not Happen or there are other Variables or Functions which I need to add. My Dummy Units for the Nanite Clouds and the Smoke Screen Ability are already using the Capcost= 0 in thier Blueprint so I can Test it Out with the Unit Cap in the next Days to give you an more Detailed Feedback.

The Projectile Method you suggest is an alternative Way to do that which is worthable to be tried yes. However after the Creation of several Projectiles and Effects I have notice that the Game has an supported Limit how many Projectiles or Effects are displayed on the Map. So If you reach this Limit you will get some Errors in the Debugger related to the Maximal Projectiles or Effects Cap is reached or something similar.

I have a few other Questions for you:
As I remember correctly you have created an Mod in the past related to Chain Lightning. I would like to Check Out the Code for this to use this for my UEF Lightning Towers. Your Reflective Shield Mod Sounds Interesting can I Check it Out?

@resin_smoker I'd love to see your code for that GC

@Resin_Smoker What you describe is similar to how we make units drop from the Galatic Colossus when they are 'crushed' by the claws. You can observe it in action (briefly) here:

On another note and going off-topic; the past three to four years a lot of changes were made to FAForever with the primary intention to improve the performance of the game. In my humble opinion this worked out fine, but because of that some functionality of certain mods broke. Referring specifically to mods such as BlackOps, Total Mayhem and the like. The mods are licensed in such a way that we can't fix the bugs and redistribute them. Therefore we've recently been trying to contact the authors* to discuss that, but there's luck in that regard so far.

Are you perhaps able to contact them, or help us get in touch with them? In FAForever almost all the work we do is licensed with the MIT license. A less permissive license is fine too, as long as we can create a Github public repository to maintain the content and redistribute the content via the vault. We'd of course include the license and credits in the repository. The same would apply to the work you're referring to of the 4th dimension mod - we'd love to add that to the vault but preferably only if we can actually maintain it when that is required.

Would you be available and interested in helping out with this? It would mean a lot to the community if we can get those mods both maintainable and compatible again.

And the same of course applies to @CDRMV and @DDDX - by licensing your work in such a way that we can maintain it would allow the community to enjoy it even after you've decided to move on, as we all do at some point πŸ™‚

A work of art is never finished, merely abandoned

@cdrmv

I'm not 100% sure (time has passed for me) but while Var-Capcost does remove the +1 to unit cap, I'm thinking that the error can still be triggered once UnitCap has been reached. Unfortunately I no longer have FAF installed and haven't for some time so I can't verify this. Oh and yeah, I recall that the Unidentified Residual Energy Signature can trigger this error as well, though it doesn't appear to impact the game. Besides, it's not like anyone would notice this as few people are ever at cap, while simultaneously watching the error log.

Projectiles and effects have limits yes, but these are much more forgiving as they only exist for a brief lifetime. One thing of note is that the projectile scripts for the original SC had a wonderful term called AddImpulse that got decremented from FAF. That one command made it possible to (easily) add inertial to units, effectively allowing for them to be thrown about during a artilleries projectiles splash impact. Yes I have a mod for SC that does exactly this.

From SC Wiki AddImpulse(self, x, y, z, makeBallistic, gravityOverride)

Closest I could find for FAF AddWorldImpulse(self, Ix, Iy, Iz, Px, Py, Pz) Note: Does not appear to be functional.

Edit: Its possible that something like this could be abused to perform the same thing INFO: Entity:FallDown(dx,dy,dz,force) -- start falling down. This lua term has both direction and force, which is what is needed to move an entity in a given direction.

As for the chain lightning, PM me your email and I'll send you the files that are relevant. (If i still have them) If i remember correctly, this is part of the Kykhu Oss weapon files.

@jip Total Mayhem is an easy one. I can give you/Uveso permission, as I have been given permission "to do whatever you want with it, thanks for asking me and not just doing it anyways" - answer I got from Burnie once I managed to track him down (search led me all over the place, finally discovered him on FB).

So if I, DDDX, can do whatever I want with it based on Burnie's approval, well then I want it to live on and be mainteined to the fullest of its potential πŸ™‚
So whatever you need from me lemme know.

To clarify, I was approached some time ago regarding using some models in my own mod, namely editing them without permission, and was told I needed to take them down or get permission. And so I did πŸ™‚
And yes, I do have screenshots (at home somewhere, am at work ATM).

Same goes for my map and mod - whatever you need to keep it bug free/keep it going, you got it. Just lemme know. Mods, specially good ones, need to live on for enjoyment of us all.

So...what do I gotta do?

What about a mod to make factory rally points much more visible when you press control-shift (E.g with a flag symbol). It might need 2 flag sizes - one for master factories and a smaller flag for a rally point of a slave (assisting) fac. If this post is considered hijacking this thread please let me know and I'll delete.

That's actually a great idea to have for just in this game πŸ‘

A work of art is never finished, merely abandoned

@dddx said in Are these mods possible?:

@jip Total Mayhem is an easy one. I can give you/Uveso permission, as I have been given permission "to do whatever you want with it, thanks for asking me and not just doing it anyways" - answer I got from Burnie once I managed to track him down (search led me all over the place, finally discovered him on FB).
So if I, DDDX, can do whatever I want with it based on Burnie's approval, well then I want it to live on and be mainteined to the fullest of its potential
So whatever you need from me lemme know.
To clarify, I was approached some time ago regarding using some models in my own mod, namely editing them without permission, and was told I needed to take them down or get permission. And so I did
And yes, I do have screenshots (at home somewhere, am at work ATM).

Could you share those screenshots with me (via Discord?). Then I can make the repository and everything later this week. Hopefully we can then soon start fixing some bugs πŸ™‚

@dddx said in Are these mods possible?:

Same goes for my map and mod - whatever you need to keep it bug free/keep it going, you got it. Just lemme know. Mods, specially good ones, need to live on for enjoyment of us all.
So...what do I gotta do?

The best approach is to add a license that describes what you're fine with. You then distribute this license with the mods/maps. In FAForever common examples are the MIT license for code / mods, and the cc-by-nc-sa 4.0 license for maps. This allows people to take and refurbish the maps for the same or other content, such as turning it into a campaign map. Less permissive licenses are fine too, as long as we (read: FAForever as an association) is allowed to fix bugs and redistribute the content.

A few examples:

And the best part is - because of that license a lot of these maps are also (soon to be) available in the LOUD Community, see also:

Just like we at times take inspiration from their implementations. It just makes everything easier, especially when the license is permissive.

A work of art is never finished, merely abandoned

@resin_smoker
So if the game's Seraphim Experimental Unidentified Residual Energy Signature also triggers this error when reaching unit capacity and doesn't spawn, you'll probably have to live with it. If there are only a few players who reach the unit capacity, you can only avoid it to playing with the highest adjustable unit capacity as possible and building fewer units so that this is not reached. As far as I remember, there is also a mod for the game that adds larger values ​​to the unit capacity setting in the lobby. If this is taken into account, I can still use the dummy units for my Jetpack Ability, Smoke Screen Ability and the Nanite Clouds. But I will still try it out with the Projectile and Entity methods in order to rewrite the 3 at some point to make them spawnable without dummy units.

That sounds really Interesting i will try out these two Impulse Functions for sure. Thanks for the tip πŸ˜‰

Okay i will write you an PM. πŸ˜‰

@Jip
That sounds really good.
I give you the Licence to Maintain my Mods/Works to keep them alive for the Community. πŸ˜‰

@cdrmv said in Are these mods possible?:

That sounds really Interesting i will try out these two Impulse Functions for sure. Thanks for the tip

The impulse functions appear to work for air units, I think @Nomander found out about that recently

A work of art is never finished, merely abandoned