Shoobadom's Grappling Hooks icon

Shoobadom's Grappling Hooks -----

NEW custom items instead of fishing rods. An excellent addition to both PvP and exploration!




[​IMG]
[​IMG]
[​IMG]
[​IMG]
[​IMG]

Feature Overview:
  • Pull yourself towards blocks
  • Pull entities towards you (works on not just mobs, but player, boats, minecarts and even armour stands!)
  • Sneaking allows you to descend slowly
  • Fully customisable stats in a config file for each grappling hook
  • Crafting and enchantments
  • Grappling hook give commands
    • Give yourself, a specific player, or all players a grapple
    • Use the presets defined in a config file (to which you can add your own)
I might make a (new) video explanation of the plugin at some point. If there is demand for this please let me know.

Guides for each aspect of the plugin can be found below:

The Grappling Hook item
Each grapple has five (fully customisable) stats:
  • Rope length:
    Maximum distance between player and what they are grappling
  • Projectile speed:
    How fast the hook shoots
  • Strength (blocks/entities):
    Maximum duration the grapple can be attached to something (separate for blocks and entities)
  • Pull speed:
    How fast the grapple is drawn
  • Reload time:
    Cooldown duration in between uses of the grapple
upload_2023-8-8_16-16-45.png

Obtaining Grappling Hooks
The grapple items can be obtained via commands or the customisable crafting recipes. See the commands section below for how to obtain the grapples with commands.
Each grapple preset can have a unique crafting recipe (or none at all). One of the exemplar recipes pre-programmed into the plugin looks as follows, and it generates the Standard Grapple.
upload_2023-8-8_16-43-47.png

Enchanting Grappling Hooks
[Note: this can be disabled in the config]
Grappling hooks can be placed into an enchanting table, just like other tools. A custom GUI that mimicks the vanilla one will appear:
enchant grapple.png

There are three custom-made enchantments for the grappling hooks, as well as two vanilla enchantments which are supported:
  • Gripping 1-3
    • Increases the strength of a grapple (on both blocks and entities) by 40%
  • Retraction 1-3
    • Increases pull speed by 10%
    • Decreases reload time by 20%
  • Projection 1-3
    • Increases maximum rope length by 50%
    • Increases projectile/hook shooting speed by 20%
  • Unbreaking 1-3
    • Behaves the same way as in vanilla
  • Mending
    • Just like in vanilla, this enchantment can only by put on a grapple by combining it with an enchanted book on an anvil
Below is a 'maxxed-out' default grapple:
maxxed gh.png

Grappling hooks can also be combined in an anvil (only grapples of the same preset can be combined):
grapple anvil.png
Grappling Hook Controls & Movement
The grappling hook use control differently depending on which hand it is in:
  • If in the main hand, left click to use
  • If in the off hand, right click to use
Using the grapples will cause the hook to shoot out. Using it again will remove it and begin the reload/cooldown.
The grapple cannot be used if it is reloading. The player must be holding the grapple in either their main or off hand in order to progress the cooldown.
If the hook latches onto a:

  • Block, you will begin to move towards it
    • A player who is below the hook will be moved towards it in all 3 axes, whereas a player above it will only be moved on the X and Z axes
    • Sneaking pauses the reeling:
      • A player beneath the hook will descend slowly
      • A player who is not directly below the hook but their Y value is less than that of the hook will swing
      • A player above the hook will not be drawn to it along any axis
    • Once at the hook, if a player terminates the grappling (by clicking) and is looking upwards, they will recieve a small vertical boost which can be used to get over ledges.
      The vertical boost is not provided if the player is looking horizontally or downwards when they terminate the grapple.
  • Entity, it will be brought to you
    • When it gets close to the player, the grapple will automatically terminate itself and the reload period will begin
If the hook latches onto an entity that is not a mob, vehicle or armour stand (such as an item frame), the grapple will be cancelled and the reload will begin.
Commands
The main command is /grapple, /gh, or /grpl. All work the same, however in he examples below I will be using /grapple.
It goes without saying that only operators can run the following commands.

  • /grapple info
    Sends information about the plugin, including presets detected. The presets can be hovered over with the mouse which provides the grapple stats.
    gh info.png
  • /grapple help
    Provides some help about how to use the plugin
  • /grapple help [command]
    Provides detauks about the usage of [command]
  • /grapple reloadconfig
    Reloads the configuration files (both config.yml and grapples.json)
  • /grapple give
    Gives the player the default grappling hook
  • /grapple give <selector>
    selector can be @p, @a, or a specific player name
    Gives the specified player a default grapple
  • /grapple give <selector> <preset>
    selector can be @p, @a, or a specific player name
    preset refers to a specific grapple preset defined in grapples.json (see Configuration section)

    Gives the specified player a specific grapple
Configuration
The config.yml file contains some general settings:
Code (YAML):
jumpBoost : 1.0
# sets % of default jump boost given when you retract the grapple while looking upwards (and being stationary)

showStatsOnDefaultGrapple
: false
# when false, the stats section of the lore will be omitted on default grapples

grappleNPCs
: false
# whether or not NPCs from the Citizens plugin can be moved with grappling hooks

hookTimeout
: 10.0
# the maximum duration a hook can be in the air (without having latched on to anything) before it is automatically deleted.
# Can be used to prevent stasis chambers

canEnchantGrapples
: true
# sets if players can use enchantment tables to enchant grappling hooks
 
grapples.json is where the grapple presets can be created and altered.
The jar includes 4 preset grapples, which are automatically generated on startup. These can all be modified or deleted, and more can be added.
The 'default' preset must be present in the file, however its stats (or name, crafting recipe, etc.) can be modified.

Removing presets can cause bugs with already extant grapples. Grapples linked to a defunct preset will be converted to 'default' grapples when they are used.
If any value in the preset is absent it will be substituted with a default value.

In the example below, 'default' is the preset name. This will be used for commands, e.g. '/grapple give @p default'.
The preset name must be unique, without spaces, and it is not case-sensitive ('default' and 'DEFAULT' are the same). If there are issues, a notice will be printed in the console.
The displayName is what appears on the grapple item itself. §6 is a colour code.
Most of it is self explanatory. It is worth noting that if 'canCraft' is set to false, the contents of 'recipe' will be ignored. If a preset's crafting recipe cannot be generated, a notice will be printed to the console.

Code (Text):
{
  "default" : {
    "displayName" : "§6Standard Grapple",
    "durability" : 200,

    "stats" : {
      "range" : 50.0,
      "hookSpeed" : 3.5,
      "strengthBlock" : 10.0,
      "strengthEntity" : 5.0,
      "pullSpeed" : 1.0,
      "reloadTime" : 3.0
    },
    "canCraft":true,
    "recipe" : {
      "shape" : [
        "a  ",
        " cr",
        " rC"
      ],
      "key" : {
        "C":"crossbow",
        "a":"arrow",
        "r":"redstone",
        "c":"chain"
      }
    }
  },
"second_preset" : { ... }
}

I would recommend using this plugin in a PvP setting as you can both get away from hairy situations and bring escaping players within reach of your sword. However, it is also a great exploration tool and generally a fun mechanic to mess around with. I hope you enjoy using my grappling hooks as much as I do!

Many features are subject to change/improvement, and your suggestions can influence this! I want to make this a fantastic plugin so please do let me know what you think, what I can add, and of course any bugs/issues that need fixing.

Join the Discord!

Resource Information
Author:
----------
Total Downloads: 990
First Release: Nov 12, 2022
Last Update: Aug 8, 2023
Category: ---------------
All-Time Rating:
8 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings