JacobG5-ReservedJsonSlots icon

ReservedJsonSlots

Allows adding item slots with JSON files.

Last updated 2 months ago
Total downloads 36368
Total rating 2 
Categories Mods Tools Tweaks & Quality Of Life
Dependency string JacobG5-ReservedJsonSlots-1.0.1
Dependants 39 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
FlipMods-ReservedItemSlotCore-2.0.35 icon
FlipMods-ReservedItemSlotCore

V62 Compatible! The core mod for all ReservedItemSlot mods. Adds functionality for all ReservedItemSlot mods and adds API functions!

Preferred version: 2.0.35

README

Reserved Json Slots

This mod allows users to easily add item slots for whatever they want in their game using JSON files.

Everyone in the lobby has to have the SAME .json files.

How To Set Up

If you're familiar with .json formatting this should be pretty easy to set up on your own.

On the first launch, it will generate an example reserved tool belt slot.

Go to BepinEx/config/JsonReservedSlots

In that folder, you will find UtilityBeltSlot.json and PlayerBones.txt

JSON Formatting

After the first launch the mod should generate UtilityBeltSlot.json

You can open this file and use it as an example for building your own utility slots.

reservedSlotName is the name of your slot. Proper formatting should be all lowercase and underscores with no spaces.

slotPriority is used by ReservedItemSlotCore to determine the position of your item slot on the side of the screen relative to other item slots. Negative numbers are used to place slots on the left side of the screen instead of the right. Make sure your config for ReservedItemSlotCore is set up correctly.

purchasePrice is the price of buying the slot from the terminal if you have buying slots enabled in ReservedItemSlotCore enabled. When the price is set to 0 it will automatically be unlocked even if buying slots is enabled.

itemsForSlot is an array of all the items the player can put inside your slot.

The only thing each item in itemsForSlot requires is itemName. itemName is case-sensitive and should be the name of an in-game item. You can add as many of these as you'd like.

If you want to get more advanced you can also give each item in itemsForSlot a bone, position, and rotation value. If you set the bone to anything other than 0 it will show the item cosmetically on the player's body.

PlayerBones

When the config folder is generated you should find PlayerBones.txt inside.

This text file contains the IDs of every player bone. You can use this to set what bone items are attached to to make them visible on the player's body. If you set it to 0, the id for None, or if you don't include a bone, it will not show the item on the player's body.

REMINDER:

This mod only looks for .json files located inside the BepInEx/config/JsonReservedSlots folder. If your .json files are not in this folder then they WILL NOT be registered in game.

ReservedItemSlotCore

This mod uses ReservedItemSlotCore by FlipMods

You should totally check out their other mods because they make some great stuff.

Examples:

Here is an example of a reserved Key slot:

{
  "reservedSlotName": "key_slot",
  "slotPriority": -100,
  "purchasePrice": 0,
  "itemsForSlot": [
    {
      "itemName": "Key"
    }
  ]
}

Here is an example of Reserved Flashlight Slot in JSON format:

{
  "reservedSlotName": "flashlight",
  "slotPriority": 200,
  "purchasePrice": 200,
  "itemsForSlot": [
    {
      "itemName": "Flashlight",
      "bone": 4,
      "position": {
        "x": 0.2,
        "y": 0.25,
        "z": 0.0
      },
      "rotation": {
        "x": 90.0,
        "y": 0.0,
        "z": 0.0
      }
    },
    {
      "itemName": "Pro-flashlight",
      "bone": 4,
      "position": {
        "x": 0.2,
        "y": 0.25,
        "z": 0.0
      },
      "rotation": {
        "x": 90.0,
        "y": 0.0,
        "z": 0.0
      }
    },
    {
      "itemName": "Laser pointer",
      "bone": 4,
      "position": {
        "x": 0.2,
        "y": 0.25,
        "z": 0.0
      },
      "rotation": {
        "x": 90.0,
        "y": 0.0,
        "z": 0.0
      }
    }
  ]
}

Here is an example of Reserved Walkie Slot in JSON format:

{
  "reservedSlotName": "walkie_talkie",
  "slotPriority": 150,
  "purchasePrice": 150,
  "itemsForSlot": [
    {
      "itemName": "Walkie-talkie",
      "bone": 4,
      "position": {
        "x": 0.15,
        "y": -0.05,
        "z": 0.25
      },
      "rotation": {
        "x": 0.0,
        "y": -90.0,
        "z": 100.0
      }
    }
  ]
}