-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocs.html
More file actions
364 lines (326 loc) · 22.3 KB
/
Copy pathdocs.html
File metadata and controls
364 lines (326 loc) · 22.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MobGrab Documentation</title>
<meta name="description" content="Full documentation for MobGrab including permissions, commands, configuration, and compatibility.">
<meta name="theme-color" content="#080c09">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/mobgrab.css">
</head>
<body>
<nav class="nav">
<div class="nav-inner">
<div class="nav-logo"><a href="index.html">Mob<span>Grab</span></a></div>
<ul class="nav-links" id="nav-links">
<li><a href="index.html">Home</a></li>
<li><a href="docs.html" class="active">Docs</a></li>
<li><a href="https://github.com/ThConMan/MobGrab">GitHub</a></li>
</ul>
<button class="nav-burger" aria-label="Menu" aria-expanded="false" aria-controls="nav-links">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<div class="docs-layout">
<!-- Sidebar TOC -->
<aside class="docs-sidebar">
<div class="docs-sidebar-header">
<a href="index.html" class="docs-back">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="19" y1="12" x2="5" y2="12"/><polyline points="12 19 5 12 12 5"/></svg>
MobGrab
</a>
</div>
<nav class="docs-toc">
<a href="#overview">Overview</a>
<a href="#usage">How to Use</a>
<a href="#permissions">Permissions</a>
<a href="#commands">Commands</a>
<a href="#config">Configuration</a>
<a href="#mob-info">Mob Info Display</a>
<a href="#trades">Villager Trades</a>
<a href="#presets">Custom Presets</a>
<a href="#compatibility">Compatibility</a>
</nav>
</aside>
<!-- Main Content -->
<main class="docs-content">
<h1 class="docs-title">MobGrab Documentation</h1>
<p class="docs-subtitle">Complete reference for MobGrab <span id="docs-version">v2.1.3</span></p>
<section id="overview" class="docs-section">
<h2>Overview</h2>
<p>MobGrab lets players pick up mobs by shift + right-clicking them. The mob turns into a player head item with full data preserved — health, equipment, trades, name, variant, everything. Right-click a block to place the mob back down exactly as it was.</p>
<div class="docs-grid">
<div class="docs-grid-item">
<h4>All 90+ Mobs</h4>
<p>Every living mob in 26.2 supported with custom head textures.</p>
</div>
<div class="docs-grid-item">
<h4>Full Data</h4>
<p>Trades, profession, level, equipment, enchants — all preserved.</p>
</div>
<div class="docs-grid-item">
<h4>Region Protection</h4>
<p>Respects WorldGuard, PlotSquared, and GriefPrevention.</p>
</div>
<div class="docs-grid-item">
<h4>Bedrock Support</h4>
<p>Form-based GUI for Bedrock players via Floodgate.</p>
</div>
</div>
</section>
<section id="usage" class="docs-section">
<h2>How to Use</h2>
<h3>Picking Up</h3>
<p><strong>Sneak + Right-click</strong> a mob to pick it up. It becomes a player head item in your inventory with the mob's face, stats, and data shown in the lore.</p>
<p>If your inventory is full, the item drops at your feet.</p>
<h3>Placing Down</h3>
<p>Hold the mob item and <strong>right-click</strong> any block to place the mob back down. All data is restored — trades, health, name, equipment, everything.</p>
<div class="docs-callout">
Mobs picked up by one player can be placed by anyone with the <span class="mono">mobgrab.place</span> permission. The items are tradeable and storable.
</div>
</section>
<section id="permissions" class="docs-section">
<h2>Permissions</h2>
<h3>Bundle Permissions</h3>
<p>Grant entire categories of mobs at once.</p>
<div class="docs-table-wrap">
<table class="docs-table">
<thead><tr><th>Permission</th><th>Description</th><th>Default</th></tr></thead>
<tbody>
<tr><td><span class="mono">mobgrab.pickup.*</span></td><td>Pick up all mobs (includes all bundles)</td><td><span class="docs-tag">false</span></td></tr>
<tr><td><span class="mono">mobgrab.pickup.passive</span></td><td>All passive mobs (cows, sheep, horses, etc.)</td><td><span class="docs-tag">false</span></td></tr>
<tr><td><span class="mono">mobgrab.pickup.hostile</span></td><td>All hostile mobs (zombies, skeletons, etc.)</td><td><span class="docs-tag">false</span></td></tr>
<tr><td><span class="mono">mobgrab.pickup.villager</span></td><td>Villagers and zombie villagers</td><td><span class="docs-tag">false</span></td></tr>
<tr><td><span class="mono">mobgrab.pickup.utility</span></td><td>Iron golems, snow golems, copper golems</td><td><span class="docs-tag">false</span></td></tr>
<tr><td><span class="mono">mobgrab.pickup.boss</span></td><td>Warden, Wither, Ender Dragon</td><td><span class="docs-tag">false</span></td></tr>
</tbody>
</table>
</div>
<h3>Individual Mob Permissions</h3>
<p>Every mob has its own permission node: <span class="mono">mobgrab.pickup.<mob></span></p>
<p>For example: <span class="mono">mobgrab.pickup.cow</span>, <span class="mono">mobgrab.pickup.villager</span>, <span class="mono">mobgrab.pickup.creeper</span></p>
<p>The mob name matches the Bukkit EntityType in lowercase. All individual permissions are listed in <span class="mono">plugin.yml</span> and are discoverable in LuckPerms.</p>
<h3>Core Permissions</h3>
<div class="docs-table-wrap">
<table class="docs-table">
<thead><tr><th>Permission</th><th>Description</th><th>Default</th></tr></thead>
<tbody>
<tr><td><span class="mono">mobgrab.place</span></td><td>Place mob items back down</td><td><span class="docs-tag docs-tag-op">op</span></td></tr>
<tr><td><span class="mono">mobgrab.admin</span></td><td>Access <span class="mono">/mobgrab</span> commands and GUI</td><td><span class="docs-tag docs-tag-op">op</span></td></tr>
<tr><td><span class="mono">mobgrab.update</span></td><td>Run <span class="mono">/mobgrab update</span> (downloads and installs the latest release)</td><td><span class="docs-tag docs-tag-op">op</span></td></tr>
<tr><td><span class="mono">mobgrab.bypass.protection</span></td><td>Ignore region protection checks</td><td><span class="docs-tag docs-tag-op">op</span></td></tr>
</tbody>
</table>
</div>
<div class="docs-callout">
Players need <strong>both</strong> the pickup permission for a mob <strong>and</strong> the mob must be enabled in config. Either condition missing will prevent pickup.
</div>
</section>
<section id="commands" class="docs-section">
<h2>Commands</h2>
<div class="docs-table-wrap">
<table class="docs-table">
<thead><tr><th>Command</th><th>Description</th><th>Permission</th></tr></thead>
<tbody>
<tr><td><span class="mono">/mobgrab gui</span></td><td>Open the mob toggle GUI</td><td><span class="mono">mobgrab.admin</span></td></tr>
<tr><td><span class="mono">/mobgrab enable <mob></span></td><td>Enable a mob for pickup</td><td><span class="mono">mobgrab.admin</span></td></tr>
<tr><td><span class="mono">/mobgrab disable <mob></span></td><td>Disable a mob for pickup</td><td><span class="mono">mobgrab.admin</span></td></tr>
<tr><td><span class="mono">/mobgrab status</span></td><td>Show enabled count and current settings</td><td><span class="mono">mobgrab.admin</span></td></tr>
<tr><td><span class="mono">/mobgrab reload</span></td><td>Reload config and presets</td><td><span class="mono">mobgrab.admin</span></td></tr>
<tr><td><span class="mono">/mobgrab give <player|@s> <preset></span></td><td>Give a preset mob item</td><td><span class="mono">mobgrab.admin</span></td></tr>
<tr><td><span class="mono">/mobgrab list</span></td><td>List available presets</td><td><span class="mono">mobgrab.admin</span></td></tr>
<tr><td><span class="mono">/mobgrab save <name></span></td><td>Save the mob you're looking at as a preset</td><td><span class="mono">mobgrab.admin</span></td></tr>
<tr><td><span class="mono">/mobgrab delete <name></span></td><td>Delete a preset</td><td><span class="mono">mobgrab.admin</span></td></tr>
<tr><td><span class="mono">/mobgrab update</span></td><td>Download and install the latest release jar</td><td><span class="mono">mobgrab.update</span></td></tr>
</tbody>
</table>
</div>
<div class="docs-callout">
<strong>About <span class="mono">/mobgrab update</span>:</strong> it checks the
<a href="https://github.com/ThConMan/MobGrab/releases">GitHub releases page</a> for a newer
version, and if one exists, downloads <span class="mono">MobGrab.jar</span> from that release
into your <span class="mono">plugins/</span> folder. It only pulls from the official public
repo, never runs automatically, and requires the <span class="mono">mobgrab.update</span>
permission (op by default). Restart the server to apply. Revoke the permission to disable it.
</div>
</section>
<section id="config" class="docs-section">
<h2>Configuration</h2>
<p>All settings are in <span class="mono">plugins/MobGrab/config.yml</span>.</p>
<h3>Sound Effects</h3>
<div class="docs-table-wrap">
<table class="docs-table">
<thead><tr><th>Key</th><th>Default</th><th>Description</th></tr></thead>
<tbody>
<tr><td><span class="mono">pickup-sound</span></td><td>ENTITY_CHICKEN_EGG</td><td>Sound when picking up a mob</td></tr>
<tr><td><span class="mono">pickup-sound-volume</span></td><td>0.8</td><td>Volume (0.0 – 1.0)</td></tr>
<tr><td><span class="mono">pickup-sound-pitch</span></td><td>1.4</td><td>Pitch (0.5 – 2.0)</td></tr>
<tr><td><span class="mono">place-sound</span></td><td>ENTITY_ENDERMAN_TELEPORT</td><td>Sound when placing a mob</td></tr>
<tr><td><span class="mono">place-sound-volume</span></td><td>0.6</td><td>Volume</td></tr>
<tr><td><span class="mono">place-sound-pitch</span></td><td>1.2</td><td>Pitch</td></tr>
</tbody>
</table>
</div>
<h3>Particle Effects</h3>
<div class="docs-table-wrap">
<table class="docs-table">
<thead><tr><th>Key</th><th>Default</th><th>Description</th></tr></thead>
<tbody>
<tr><td><span class="mono">pickup-particles</span></td><td>SMOKE</td><td>Particle type on pickup</td></tr>
<tr><td><span class="mono">pickup-particle-count</span></td><td>15</td><td>Number of particles</td></tr>
<tr><td><span class="mono">place-particles</span></td><td>HAPPY_VILLAGER</td><td>Particle type on place</td></tr>
<tr><td><span class="mono">place-particle-count</span></td><td>20</td><td>Number of particles</td></tr>
</tbody>
</table>
</div>
<h3>Mechanics</h3>
<div class="docs-table-wrap">
<table class="docs-table">
<thead><tr><th>Key</th><th>Default</th><th>Description</th></tr></thead>
<tbody>
<tr><td><span class="mono">cooldown-seconds</span></td><td>1</td><td>Cooldown between pickups per player</td></tr>
<tr><td><span class="mono">blacklist-mode</span></td><td>false</td><td>false = whitelist (only listed mobs), true = blacklist (all except listed)</td></tr>
<tr><td><span class="mono">fireproof-items</span></td><td>true</td><td>Grabbed mob items survive fire & lava; can also be toggled live from the admin GUI</td></tr>
<tr><td><span class="mono">disabled-worlds</span></td><td>[]</td><td>Worlds where MobGrab is fully disabled (no pickup or placement), by world folder name</td></tr>
</tbody>
</table>
</div>
<h3>Mob Toggles</h3>
<p>Under <span class="mono">enabled-mobs:</span>, each mob type can be set to <span class="mono">true</span> or <span class="mono">false</span>.</p>
<p>In <strong>whitelist mode</strong> (default), only mobs set to <span class="mono">true</span> can be picked up. In <strong>blacklist mode</strong>, all mobs can be picked up unless set to <span class="mono">false</span>.</p>
<p>Mobs can also be toggled in-game via <span class="mono">/mobgrab gui</span>.</p>
<div class="docs-callout docs-callout-warn">
Boss mobs (Warden, Wither, Ender Dragon) are disabled by default. Enable them in config if desired.
</div>
</section>
<section id="mob-info" class="docs-section">
<h2>Mob Info Display</h2>
<p>When a mob is picked up, the item shows detailed info in its lore. What's displayed depends on the mob type:</p>
<div class="docs-table-wrap">
<table class="docs-table">
<thead><tr><th>Info</th><th>Shown On</th></tr></thead>
<tbody>
<tr><td>Health</td><td>All living entities</td></tr>
<tr><td>Custom name</td><td>Named mobs</td></tr>
<tr><td>Owner</td><td>Tamed pets (wolves, cats, parrots, etc.)</td></tr>
<tr><td>Baby</td><td>Any ageable mob that isn't adult</td></tr>
<tr><td>Sitting</td><td>Tamed pets that are sitting</td></tr>
<tr><td>Profession, Level, Trades</td><td>Villagers</td></tr>
<tr><td>Color, Style</td><td>Horses</td></tr>
<tr><td>Type, Collar</td><td>Cats, Wolves</td></tr>
<tr><td>Wool Color, Sheared</td><td>Sheep</td></tr>
<tr><td>Variant</td><td>Axolotls, Frogs, Mooshrooms</td></tr>
<tr><td>Color</td><td>Parrots, Llamas, Shulkers</td></tr>
<tr><td>Type</td><td>Foxes, Rabbits</td></tr>
<tr><td>Personality</td><td>Pandas</td></tr>
<tr><td>Nectar, Stung, Angry</td><td>Bees</td></tr>
<tr><td>Screaming, Horns</td><td>Goats</td></tr>
<tr><td>Charged</td><td>Creepers</td></tr>
<tr><td>Size</td><td>Slimes, Magma Cubes, Phantoms</td></tr>
<tr><td>Pattern, Body Color</td><td>Tropical Fish</td></tr>
<tr><td>Puff State</td><td>Pufferfish</td></tr>
<tr><td>Shivering</td><td>Striders</td></tr>
<tr><td>Weathering State</td><td>Copper Golems</td></tr>
<tr><td>Equipment & Enchants</td><td>Any mob with armor or held items</td></tr>
</tbody>
</table>
</div>
</section>
<section id="trades" class="docs-section">
<h2>Villager Trades</h2>
<p>Villager items display a full trade list with icons:</p>
<div class="docs-code">
Trades (6)
24x Emerald + Book -> Mending I
20x Wheat -> Emerald
Book -> Emerald
5x Emerald -> Shield
...
</div>
<ul class="docs-list">
<li>Each trade shows ingredients and result with item icons</li>
<li>Multi-ingredient trades display a <span class="mono">+</span> between inputs</li>
<li>Enchanted book trades show the enchantment name directly as the result</li>
<li>Exhausted trades (no uses left) appear with strikethrough</li>
</ul>
</section>
<section id="presets" class="docs-section">
<h2>Custom Presets</h2>
<p>A preset is a saved mob you hand out as an item. Define them in
<span class="mono">plugins/MobGrab/presets.yml</span>, then give them out.</p>
<h3>Commands</h3>
<ul class="docs-list">
<li><span class="mono">/mobgrab save <name></span> — save the mob you're looking at (works for any mob)</li>
<li><span class="mono">/mobgrab give <player|@s> <preset></span> — give the preset item</li>
<li><span class="mono">/mobgrab list</span> — list presets · <span class="mono">/mobgrab delete <name></span> — remove one</li>
<li><span class="mono">/mobgrab reload</span> — reload after editing the file</li>
</ul>
<h3>Hand-written villager preset</h3>
<p>Best for custom trader villagers. Each top-level key is the preset name:</p>
<div class="docs-code">
mending_master:
type: VILLAGER
name: "&6Mending Master" # & colour codes
profession: LIBRARIAN # job (see list below)
level: 5 # 1-5; 5 unlocks all trades
villager-type: PLAINS # biome skin (optional)
health: 40 # optional
trades:
- ingredient1: "EMERALD:5" # what the player pays
ingredient2: "BOOK:1" # optional second cost
result: "ENCHANTED_BOOK:1" # what they receive
enchantments:
mending: 1 # enchant the result (name: level)
max-uses: 9999 # uses before it locks
</div>
<h3>Fields</h3>
<ul class="docs-list">
<li><span class="mono">type</span> — entity type; defaults to <span class="mono">VILLAGER</span></li>
<li><span class="mono">profession</span> — LIBRARIAN, ARMORER, WEAPONSMITH, TOOLSMITH, FARMER, CLERIC, FLETCHER, CARTOGRAPHER, BUTCHER, MASON, SHEPHERD, FISHERMAN, LEATHERWORKER, NITWIT, NONE</li>
<li><span class="mono">villager-type</span> — PLAINS, DESERT, JUNGLE, SAVANNA, SNOW, SWAMP, TAIGA</li>
<li><span class="mono">trades</span> — list of <span class="mono">ingredient1</span> / optional <span class="mono">ingredient2</span> / <span class="mono">result</span> / optional <span class="mono">enchantments</span> / <span class="mono">max-uses</span></li>
<li><span class="mono">equipment</span> — optional helmet / chestplate / leggings / boots / main-hand / off-hand, each a material with optional enchantments</li>
<li>Items are <span class="mono">MATERIAL:AMOUNT</span> (e.g. <span class="mono">EMERALD:10</span>); enchantments use lowercase ids (<span class="mono">mending</span>, <span class="mono">sharpness</span>)</li>
</ul>
<h3>Snapshot any mob</h3>
<p>Look at any mob and run <span class="mono">/mobgrab save <name></span>. It writes the exact mob
to <span class="mono">presets.yml</span> as a snapshot — don't hand-edit the <span class="mono">snbt</span>:</p>
<div class="docs-code">
my_wolf:
type: WOLF
snbt: "{...full mob data...}"
</div>
</section>
<section id="compatibility" class="docs-section">
<h2>Compatibility</h2>
<p>All integrations are soft dependencies — MobGrab works fine without any of them installed.</p>
<h3>Region Protection</h3>
<p>Mobs can only be picked up or placed where the player has build permission. Supports:</p>
<ul class="docs-list">
<li><strong>WorldGuard</strong> — checks the BUILD flag, plus a custom <span class="mono">mob-grab</span> region flag (set to <span class="mono">deny</span> to block pickups in a region)</li>
<li><strong>PlotSquared</strong> — checks plot ownership and membership</li>
<li><strong>GriefPrevention</strong> — checks claim build access</li>
</ul>
<p>Use <span class="mono">mobgrab.bypass.protection</span> to skip these checks.</p>
<h3>RoseStacker</h3>
<p>When picking up a mob from a RoseStacker stack, only one mob is removed from the stack instead of the whole group.</p>
<h3>Floodgate / Geyser</h3>
<p>Bedrock players automatically get a form-based GUI for <span class="mono">/mobgrab gui</span> instead of the chest inventory.</p>
<h3>ClickVillagers Migration</h3>
<p>MobGrab can place villager items created by ClickVillagers. Players can right-click to place their old ClickVillagers items normally. When they pick the villager up again, it becomes a MobGrab item going forward.</p>
</section>
</main>
</div>
<footer class="footer">
<div class="footer-inner">
<div class="nav-logo"><a href="index.html">Mob<span>Grab</span></a></div>
<p>© 2026 MobGrab. Made by Con.</p>
</div>
</footer>
<script src="js/mobgrab.js" defer></script>
</body>
</html>