Set up Grappling Hook on Minecraft
Install SnowGears' Grappling Hook plugin by upload, give hooks with /gh give, edit recipes.yml and switch on permissions only if you need them.
Grappling Hook gives players a craftable fishing-rod style hook. Cast it at a block and reel in to be pulled across, or cast it at a mob, player or dropped item to pull that to you. Each hook has a number of uses, and every hook type is set up in one file.
Checked against Grappling Hook 1.6.5 by SnowGears, which the SpigotMC page lists as tested from Minecraft 1.14 to 1.20, October 2026.
Which Grappling Hook this is
Several plugins share the name. This guide covers the one by SnowGears on SpigotMC, the one that gives hooks with /gh give and keeps its hooks in recipes.yml. Its last update was 1.6.5 in October 2022, and the author lists 1.14 to 1.20 as tested. Choose a Minecraft version in that range in JAR Manager (Change Minecraft server version or loader). The author lists no newer version as tested.
What it needs
- A server that loads plugins. You need a Plugins tab, so Paper or Purpur.
- A manual install. The plugin is on SpigotMC. The store in the Plugins tab searches Modrinth, CurseForge and Hangar, and none of them carries this plugin. A CurseForge listing named
Grappling Hookis a 2013 Bukkit page that says the project moved to Spigot, so do not install that one. - A server plugin. Its
plugin.ymlmakes it a Bukkit plugin, withcom.snowgears.grapplinghook.GrapplingHookas the main class, so it goes in the server'spluginsfolder.
Install it
- Download the jar from spigotmc.org/resources/grappling-hook.22854.
- Open the Backups tab and click Create backup.
- Open File Manager, open the
pluginsfolder and click Upload files. Choose the jar. - Open the Console tab and click Restart.
- When the server has started, a
GrapplingHookfolder appears insideplugins.
Give yourself a hook
The author says no commands are needed for normal play, but the give command is the quickest way to test. Make yourself an operator with Operators in the Players tab (Whitelist players and set operators). Then, in game:
/gh give <hook_id>puts that hook in your inventory./gh give <hook_id> <player>gives it to someone else.
The hook ids in the default recipes.yml are wood_hook, stone_hook, iron_hook, gold_hook, emerald_hook, diamond_hook, air_hook and water_hook. Cast it at a block and reel in to be pulled there.
Crafting and uses
Every hook is a fishing rod beside a material, and you can change any recipe. The wood hook needs planks, the stone hook cobblestone, and the iron, gold, emerald and diamond hooks use ingots, emeralds and diamonds. The air hook uses feathers and the water hook water buckets. The defaults give 5 uses for wood, 10 for stone, 20 for iron, 25 for gold, 40 for emerald and 100 for diamond.
Change a hook
Open recipes.yml in the plugin's folder with File Manager. Each numbered entry sets one hook:
id,name,lore,usesandenabled.velocityThrowandvelocityPull, which multiply how fast the hook flies and how hard it pulls.timeBetweenGrapples, a cooldown in seconds.fallDamage,slowFall,lineBreakandstickyHook.- Block and entity
BLACKLISTorWHITELISTlists, so a hook cannot grab item frames, for example.
You can add as many entries as you like. Restart from the Console tab after saving.
Permissions
Permissions are ignored by default. The plugin's config.yml ships with usePermissions: false, so everyone can use and craft hooks, and only /gh give needs operator status. To control access by permission, open config.yml in the plugin's folder with File Manager, set usePermissions: true and restart from the Console tab. After that, grant the nodes in your permissions plugin (Set up LuckPerms):
grapplinghook.pull.self,grapplinghook.pull.mobs,grapplinghook.pull.playersandgrapplinghook.pull.itemsfor what a hook can pull.grapplinghook.craft.<hook_id>to craft one hook, for examplegrapplinghook.craft.wood_hook.grapplinghook.operatorfor/gh give.
The plugin's plugin.yml marks every node as operator-only until you grant it, and operators can craft any hook either way.
Common problems
- The hook does nothing for a player. If you set
usePermissions: trueinconfig.yml, check that the player has the pull nodes above. Otherwise check that the target is not on one of the hook'sBLACKLISTorWHITELISTlists inrecipes.yml, and that the hook'senabledvalue istrue, because a disabled entry is not loaded at all. - No fall damage after a pull. That is the default,
fallDamage: false. - The plugin does not load. Download the log with Download Log in the Console tab and look for the plugin's name. A Minecraft version newer than the ones the author tested is one thing to rule out.
Was this guide helpful?
Related guides
Set up VeinMiner on your Minecraft server
Install VeinMiner on Paper, then set the cooldown, chain limit and block groups with in-game commands so one swing mines a whole vein.
Set up the Randomizer plugin for Minecraft
Install the Randomizer plugin by motz from Hangar, run /randomizer shuffle and start for a block-drop challenge, and see its commands and limits.
Set up Morph on your Minecraft server
Install Morph with Lib's Disguises and PacketEvents so players can turn into mobs they have killed, then set permissions and mob options.
