InvSee++ icon

InvSee++ -----

View and edit inventories of your players! Works for offline players! Now with give/clear commands!



InvSee++ Inventory manipulation done right!

Features:
  • View and edit other players' inventories and enderchests.
  • Includes player's armour contents and off-hand items.
  • Includes player's crafting/workbench/anvil/smithing table/stonecutter/grindstone/loom/enchanting table/merchant items and the item held in the player's cursor.
  • Support for offline players, even for players who have never logged into the server yet.
  • Auto-reloading of spectator inventories when players relog.
  • Customisable inventory layouts and titles.
  • Configurable logging of changes to inventories.
  • Simple yet extensive application programming interface.
  • Works on the Glowstone and CraftBukkit server software, as well forks such as Spigot, Paper and Purpur.
    • Support for Folia has been disabled due to gamebreaking bugs. Support is still planned, but needs careful redesign.
    • Support for hybrid servers (Forge/Bukkit, Fabric/Bukkit) is available.
  • (Optional) Integration with PerWorldInventory. This requires load-data-on-join: true in its config.
  • [Addon] Give items to (offline) players via commands!
  • [Addon] Clear items out of (offline) players' inventories via commands!
Showcase videos:
English video, made by me:
German video, made by @Produktecheck:

Commands:
  • /invsee <userName>|<uniqueId>
  • /endersee <userName>|<uniqueId>
If PerWorldInventory is installed then both commands can take an optional extra argument:
  • /invsee <userName>|<uniqueId> PWI{<property>=<value>,...}
  • /endersee <userName>|<uniqueId> PWI{<property>=<value>,...}
...where <property> can be one of [group, world, gamemode].

Because PerWorldInventory shares inventories based on groups you can specify the group directly as a property, or you can have InvSee++ resolve it for you by just specifying the world. If a gamemode is unspecified then InvSee++ will default to gamemode survival.

Permissions:
Permissions are split up into 8 base permissions:
  • invseeplusplus.invsee.view
  • invseeplusplus.invsee.edit
  • invseeplusplus.endersee.view
  • invseeplusplus.endersee.edit
  • invseeplusplus.exempt.invsee
  • invseeplusplus.exempt.endersee
  • invseeplusplus.bypass-exempt.invsee
  • invseeplusplus.bypass-exempt.endersee
To simplify your life you can use these built-in parent permissions:
  • invseeplusplus.view provides:
    • invseeplusplus.invsee.view
    • invseeplusplus.endersee.view
  • invseeplusplus.edit provides:
    • invseeplusplus.invsee.edit
    • invseeplusplus.endersee.edit
  • invseeplusplus.exempt provides:
    • invseeplusplus.exempt.invsee
    • invseeplusplus.exempt.endersee
  • invseeplusplus.bypass-exempt provides
    • invseeplusplus.bypass-exempt.invsee
    • invseeplusplus.bypass-exempt.endersee
  • invseeplusplus.* provides all 8 of the base permissions as well as invseeplusplus.give.* and invseeplusplus.clear.*
Note that InvSee++ can only check permissions for offline players if you have Vault installed.

Configuration:
Code (YAML):

# Whether to tabcomplete offline player names.
# On Paper and other server implementation that implement the Paper API this will be done asynchronously,
# causing less stress on the server's main thread, thus preventing lag.
tabcomplete-offline-players
: true

# Whether InvSee++ will let you spectate inventories of players who are offline.
enable-offline-player-support
: true
# Whether InvSee++ will let you spectate inventories of players who never player on the server before.
enable-unknown-player-support
: true

# Default titles for spectator inventories.
titles
:
  inventory
: "<player>'s inventory"
  enderchest
: "<player>'s enderchest"

# Default templates for spectator inventories.
# legend:
#   inventory:
#     - i_xx is a regular inventory 'container' slot (xx being the slot number)
#     - a_x is an armour slot: b for boots, l for leggings, c for chest and h for helmet
#     - oh is the offhand slot
#     - c is the cursor slot
#     - p_xx is a 'personal' slot, where the contents of the player's crafting items / anvil items / enchanting table items / etc. live
#     - _ is an unused slot
#   enderchest:
#     - e_xx is a regular enderchest 'container' slot (xx being the slot number)
#   Note that normally a player's enderchest is only 3*9=27 slots in size, but on Purpur this can go up to 54.
templates
:
  inventory
: |
    i_00 i_01 i_02 i_03 i_04 i_05 i_06 i_07 i_08
    i_09 i_10 i_11 i_12 i_13 i_14 i_15 i_16 i_17
    i_18 i_19 i_20 i_21 i_22 i_23 i_24 i_25 i_26
    i_27 i_28 i_29 i_30 i_31 i_32 i_33 i_34 i_35
    a_b  a_l  a_c  a_h  oh   c    _    _    _
    p_00 p_01 p_02 p_03 p_04 p_05 p_06 p_07 p_08
  enderchest
: |
    e_00 e_01 e_02 e_03 e_04 e_05 e_06 e_07 e_08
    e_09 e_10 e_11 e_12 e_13 e_14 e_15 e_16 e_17
    e_18 e_19 e_20 e_21 e_22 e_23 e_24 e_25 e_26
    e_27 e_28 e_29 e_30 e_31 e_32 e_33 e_34 e_35
    e_36 e_37 e_38 e_39 e_40 e_41 e_42 e_43 e_44
    e_45 e_46 e_47 e_48 e_49 e_50 e_51 e_52 e_53

# Logging options. InvSee++ can log what spectators change in the SpectatorInventories.
# Change these values to change how logging works.
logging
:
  # Pick one from: [LOG_NEVER, LOG_ON_CLOSE, LOG_EVERY_CHANGE]
  granularity
: LOG_ON_CLOSE
  # Pick zero or more from: [SERVER_LOG_FILE, PLUGIN_LOG_FILE, SPECTATOR_LOG_FILE, CONSOLE]
  output
: [PLUGIN_LOG_FILE ]
  #
  # Logging formats strings:
  # The following macros will be replaced by the plugin:
  #   <date> - will be replaced by the current date in yy-MM-dd notation
  #   <time> - will be replaced by the current time in HH:mm:ss notation
  #   <spectator_uuid> - will be replaced by the unique id of the spectator player
  #   <spectator_name> - will be replaced by the username of the spectator player
  #   <taken> - will be replaced by the items taken from the spectator inventory
  #   <given> - will be replaced by the items given to the spectator inventory
  #   <target> - will be replaced by the target player
  #
  # Format for logging to the server log file:
  format-server-log-file
: |

    Spectator UUID: <spectator_uuid>

    Spectator Name
: <spectator_name>
    Taken        
: <taken>
    Given        
: <given>
    Target        
: <target >
  # Format for logging to the plugin's log file:
  format-plugin-log-file
: |
    [<date> <time>] [<level>]
:
    Spectator UUID
: <spectator_uuid>
    Spectator Name
: <spectator_name>
    Taken        
: <taken>
    Given        
: <given>
    Target        
: <target >
  # Format for logging to the spectator's log file
  format-spectator-log-file
: |
    [<date> <time>] [<level>]
:
    Taken        
: <taken>
    Given        
: <given>
    Target        
: <target >
  # Format for logging to the console:
  format-console
: |
    [<date> <time>] [<level>]
:
    Spectator UUID
: <spectator_uuid>
    Spectator Name
: <spectator_name>
    Taken        
: <taken>
    Given        
: <given>
    Target        
: <target >

# Selects the palette of placeholders to be used in slots for armour, crafting, enchanting, anvil, merchant, loom, cartography, smithing, grindstone, stonecutter.
# Choose one of: 'glass panes', 'icons' or 'empty'.
placeholder-palette
: 'glass panes'
 

Addons:
InvSee++ Give

Adds the following commands:
  • /invgive <player> <item type> <amount>? <nbt tag>?
  • /endergive <player> <item type> <amount>? <nbt tag>?
Examples:
  • /invgive Notch diamond 1 {"foo":"bar"}
  • /endergive Jannyboy11 wool:14
  • /invgive Jannyboy11 emerald[max_stack_size=99] 65
Adds the following permissions:
  • invseeplusplus.give.inventory
  • invseeplusplus.give.enderchest
  • invseeplusplus.give.*

InvSee++ Clear
Adds the following commands:
  • /invclear <player> <item type>? <amount>?
  • /enderclear <player> <item type>? <amount>?
Examples:
  • /invclear Notch diamond 1
  • /enderclear Jannyboy11 wool:14
Adds the following permissions:
  • invseeplusplus.clear.inventory
  • invseeplusplus.clear.enderchest
  • invseeplusplus.clear.*

Metrics:

This plugin collects anonymous metrics which are submitted to bStats. They help me to see how the plugin is used and thus with future development. This feature can be disabled in the /plugins/bstats/config.yml file.

Chat:

Bug reports and feature requests can be made via GitHub issues.
If you prefer a more direct way of chatting you can also join my discord.

Credits:

Special thanks to Icodak for creating the logo! Their Discord profile is Icodak#5793.

Scope of the project:

I currently don't have many new features in mind, but if you need some functionality, feel free to ask it on the discussion thread!
Currently considered: cross-server invsee, multiverse-inventories and separe-world-items integration.

Do you like this plugin?

Don't forget the leave a review! :)
I accept donations as well. ;)
Resource Information
Author:
----------
Total Downloads: 441,267
First Release: Aug 4, 2020
Last Update: Dec 3, 2024
Category: ---------------
All-Time Rating:
87 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings