Request: /myattackminiSolved

Please? for the new attack heli

great idea i came here to post that myself...

/mymini
/myattack

I think we need this too haha, will be dope

I'm planning to implement it this week. It will include support for the three player helis and maybe eventually the ch47. All the existing features and config options will be available for all heli types.

Note, there will be backwards incompatible changes coming with the update, such as the plugin being renamed to SpawnHeli, permissions being changed such as spawnmini.use to spawnheli.minicopter.use, and hooks possibly being renamed.

If you currently dynamically grant/revoke permissions for this plugin via other plugins, those permissions will need to be changed. Most likely, that's just a find and replace in your config and data files.

any news on this being implemented?  been looking for something like this since the attack heli came in

I have implemented most of it, but got a bit held up when trying to make it backwards compatible. I'll be settling for just partial backwards compatibility, like most of the config can auto migrate, and the data file will be automatically detected so existing minis will still be tracked by the new plugin. I can have a beta available in a few days.

awesome.  looking forward to it

NKXTQs24ExGTuL8.jpg WhiteThunder

Ok here it is. I haven't had time to test everthing thoroughly, so there may be some minor (but easy to fix) bugs that stem from having rewritten most of the code. I still have to review this with SpooksAU so some things may be subject to change.

Docs: https://github.com/WheteThunger/SpawnMini

File: https://raw.githubusercontent.com/WheteThunger/SpawnMini/master/SpawnHeli.cs

There is a migration guide in the documentation.

Let me know if you have any issues.

This works perfectly for me but is there a way to allow the player to only have 1 of the three helis at a time? The players can spawn all of them just fine, its just that when they spawn 1, I want them to have to destrot the one they spawned to switch, or even have it auto destroy the one they surrently have to the new one they want

v36fGdXQn1yzbtD.jpg snaplatack Auto despawn other helicopter types

This works perfectly for me but is there a way to allow the player to only have 1 of the three helis at a time? The players can spawn all of them just fine, its just that when they spawn 1, I want them to have to destrot the one they spawned to switch, or even have it auto destroy the one they surrently have to the new one they want

I will need to think about this some more to make sure the edge cases are handled.

  • If the player doesn't have the despawn permission, being able to despawn a heli this way could be seen as a loophole that breaks the server owner's expectation. However, if this feature requires the despawn permission, and the player doesn't have that permission, the player would essentially be blocked from spawning the desired heli until they find a way to destroy their current one, which is quite inconvenient, so I'm leaning towards simply not requiring the despawn permission when heli exclusivity is enabled.
  • If the plugin is configured to disallow despawning the heli while occupied, or if another plugin blocks despawning the heli via a hook, the despawning will likely need to be prevented, and the player informed about the reason.
  • If the helicopter cannot be auto despawned for any of the above reasons, the new helicopter should not be spawned, or else that would be a loop hole (i.e., exploit) to allow spawning multiple helicopters which would break the server owner's expectation.
While I understand you might not care about these cases, there needs to be some logical consistency with the various features of the plugin or else it could become a problem that the plugin maintainer has to deal with when a server owner tries to use a particular combination of config options and permissions that I didn't think through carefully, at which point I may have to choose between multiple undesirable resolutions (e.g., make backwards incompatible changes for some users to resolve the logical inconsistency, or add even more options which could make the plugin more confusing to understand and maintain).
NKXTQs24ExGTuL8.jpg WhiteThunder

I will need to think about this some more to make sure the edge cases are handled.

  • If the player doesn't have the despawn permission, being able to despawn a heli this way could be seen as a loophole that breaks the server owner's expectation. However, if this feature requires the despawn permission, and the player doesn't have that permission, the player would essentially be blocked from spawning the desired heli until they find a way to destroy their current one, which is quite inconvenient, so I'm leaning towards simply not requiring the despawn permission when heli exclusivity is enabled.
  • If the plugin is configured to disallow despawning the heli while occupied, or if another plugin blocks despawning the heli via a hook, the despawning will likely need to be prevented, and the player informed about the reason.
  • If the helicopter cannot be auto despawned for any of the above reasons, the new helicopter should not be spawned, or else that would be a loop hole (i.e., exploit) to allow spawning multiple helicopters which would break the server owner's expectation.
While I understand you might not care about these cases, there needs to be some logical consistency with the various features of the plugin or else it could become a problem that the plugin maintainer has to deal with when a server owner tries to use a particular combination of config options and permissions that I didn't think through carefully, at which point I may have to choose between multiple undesirable resolutions (e.g., make backwards incompatible changes for some users to resolve the logical inconsistency, or add even more options which could make the plugin more confusing to understand and maintain).

Okay. I understand what your saying. It makes sense. Could there be a senario in which this could be possible? I am trying to make a build/fly server and I dont want players to be able to spawn all 3 types of helis all at once to keep the area clean. Would another way of doing it be that I could make a custom chat command with the Custom Chat Command plugin that runs the despawn command when you spawn any other heli, or would this hurt performance significantly and cause errors?

I will make it happen, I just need a little more time to design it is all.

NKXTQs24ExGTuL8.jpg WhiteThunder

I will make it happen, I just need a little more time to design it is all.

Okay. It does work with custom chat commands plugin. it is janky tho. Let me know when you get it working and Ill change it over. Also, attack helis are the only helis that are not destroyed when the player disconnects from my testing. In the config, all three helis are set to destroy on player disconnect as well.

Snaplatack disconnecting: disconnect
Destroying components immediately is not permitted during physics trigger/contact, animation event callbacks, rendering callbacks or OnValidate. You must use Destroy instead.
Snaplatack[XXXXXXXXXXXXX6377] died (Fall)
Calling kill - but already IsDestroyed!? scraptransporthelicopter[0]
{
  "Minicopter": {
    "Spawn commands": [
      "mini"
    ],
    "Fetch commands": [
      "fmini"
    ],
    "Despawn commands": [
      "nomini"
    ],
    "Can despawn while occupied": true,
    "Can fetch while occupied": false,
    "Can spawn while building blocked": false,
    "Can fetch while building blocked": false,
    "Auto fetch": true,
    "Repair on fetch": false,
    "Max spawn distance": 5.0,
    "Max fetch distance": -1.0,
    "Max despawn distance": -1.0,
    "Fixed spawn distance": {
      "Enabled": true,
      "Distance from player": 3.0,
      "Helicopter rotation angle": 90.0
    },
    "Only owner and team can mount": false,
    "Spawn health": 750.0,
    "Destroy on disconnect": true,
    "Fuel": {
      "Default fuel amount": 0,
      "Fuel profiles requiring permission": [
        {
          "Fuel amount": 100,
          "Permission suffix": "100"
        },
        {
          "Fuel amount": 500,
          "Permission suffix": "500"
        },
        {
          "Fuel amount": 1000,
          "Permission suffix": "1000"
        }
      ]
    },
    "Spawn cooldowns": {
      "Default cooldown (seconds)": 0,
      "Cooldown profiles requiring permission": [
        {
          "Cooldown (seconds)": 3600.0,
          "Permission suffix": "1hr"
        },
        {
          "Cooldown (seconds)": 600.0,
          "Permission suffix": "10m"
        },
        {
          "Cooldown (seconds)": 5.0,
          "Permission suffix": "5s"
        }
      ]
    },
    "Fetch cooldowns": {
      "Default cooldown (seconds)": 0,
      "Cooldown profiles requiring permission": [
        {
          "Cooldown (seconds)": 3600.0,
          "Permission suffix": "1hr"
        },
        {
          "Cooldown (seconds)": 600.0,
          "Permission suffix": "10m"
        },
        {
          "Cooldown (seconds)": 5.0,
          "Permission suffix": "5s"
        }
      ]
    }
  },
  "ScrapTransportHelicopter": {
    "Spawn commands": [
      "scrap"
    ],
    "Fetch commands": [
      "fheli"
    ],
    "Despawn commands": [
      "noheli"
    ],
    "Can despawn while occupied": true,
    "Can fetch while occupied": false,
    "Can spawn while building blocked": false,
    "Can fetch while building blocked": false,
    "Auto fetch": false,
    "Repair on fetch": false,
    "Max spawn distance": 5.0,
    "Max fetch distance": -1.0,
    "Max despawn distance": -1.0,
    "Fixed spawn distance": {
      "Enabled": true,
      "Distance from player": 3.0,
      "Helicopter rotation angle": 90.0
    },
    "Only owner and team can mount": false,
    "Spawn health": 1000.0,
    "Destroy on disconnect": true,
    "Fuel": {
      "Default fuel amount": 0,
      "Fuel profiles requiring permission": [
        {
          "Fuel amount": 100,
          "Permission suffix": "100"
        },
        {
          "Fuel amount": 500,
          "Permission suffix": "500"
        },
        {
          "Fuel amount": 1000,
          "Permission suffix": "1000"
        }
      ]
    },
    "Spawn cooldowns": {
      "Default cooldown (seconds)": 0,
      "Cooldown profiles requiring permission": [
        {
          "Cooldown (seconds)": 3600.0,
          "Permission suffix": "1hr"
        },
        {
          "Cooldown (seconds)": 600.0,
          "Permission suffix": "10m"
        },
        {
          "Cooldown (seconds)": 5.0,
          "Permission suffix": "5s"
        }
      ]
    },
    "Fetch cooldowns": {
      "Default cooldown (seconds)": 0,
      "Cooldown profiles requiring permission": [
        {
          "Cooldown (seconds)": 3600.0,
          "Permission suffix": "1hr"
        },
        {
          "Cooldown (seconds)": 600.0,
          "Permission suffix": "10m"
        },
        {
          "Cooldown (seconds)": 5.0,
          "Permission suffix": "5s"
        }
      ]
    }
  },
  "AttackHelicopter": {
    "Spawn commands": [
      "attack"
    ],
    "Fetch commands": [
      "fattack"
    ],
    "Despawn commands": [
      "noattack"
    ],
    "Can despawn while occupied": true,
    "Can fetch while occupied": false,
    "Can spawn while building blocked": false,
    "Can fetch while building blocked": false,
    "Auto fetch": false,
    "Repair on fetch": false,
    "Max spawn distance": 5.0,
    "Max fetch distance": -1.0,
    "Max despawn distance": -1.0,
    "Fixed spawn distance": {
      "Enabled": true,
      "Distance from player": 3.0,
      "Helicopter rotation angle": 90.0
    },
    "Only owner and team can mount": false,
    "Spawn health": 850.0,
    "Destroy on disconnect": true,
    "Fuel": {
      "Default fuel amount": 0,
      "Fuel profiles requiring permission": [
        {
          "Fuel amount": 100,
          "Permission suffix": "100"
        },
        {
          "Fuel amount": 500,
          "Permission suffix": "500"
        },
        {
          "Fuel amount": 1000,
          "Permission suffix": "1000"
        }
      ]
    },
    "Spawn cooldowns": {
      "Default cooldown (seconds)": 0,
      "Cooldown profiles requiring permission": [
        {
          "Cooldown (seconds)": 3600.0,
          "Permission suffix": "1hr"
        },
        {
          "Cooldown (seconds)": 600.0,
          "Permission suffix": "10m"
        },
        {
          "Cooldown (seconds)": 5.0,
          "Permission suffix": "5s"
        }
      ]
    },
    "Fetch cooldowns": {
      "Default cooldown (seconds)": 0,
      "Cooldown profiles requiring permission": [
        {
          "Cooldown (seconds)": 3600.0,
          "Permission suffix": "1hr"
        },
        {
          "Cooldown (seconds)": 600.0,
          "Permission suffix": "10m"
        },
        {
          "Cooldown (seconds)": 5.0,
          "Permission suffix": "5s"
        }
      ]
    }
  }
}

Good catch, I just released a fix for that. Download from the same URL.

Locked automatically