Skip to content

01 ‐ Configuration

Lauriichan edited this page Feb 24, 2026 · 9 revisions

This page will explain every setting in every config and how said config is used.


General concepts

This wiki will note down paths within the config as path.segment.
In the config this path would look like this:

{
    "path": {
        "segment": ""
    }
}

What is a namespaced key? A namespaced key is a concept of minecraft. It's simply an identifying value used to identify structures, loot tables, blocks and more. A namespaced key consists, as the name suggests, of two parts, a namespace and a key.
The format of a namespaced key is <namespace>:<key>.
Examples for namespaced keys:

  • minecraft:stone - The id of the stone block
  • minecraft:stronghold - The id of the stronghold
  • minecraft:chests/buried_treasure - The id of the loot table used for the burried treasure

Whenever this config talks of namespaced keys it usually defines them in following list format instead:

{
    "<namespace>": [
        "<key1>",
        "<key2>"
    ]
}

So the previously shown examples would look like this in the config:

{
    "minecraft": [
        "stone",
        "stronghold",
        "chests/buried_treasure"
    ]
}

In the case that you are allows to set values for a namespaced key the format is a bit different as lists can not define values. Therefore JLI uses sections instead in these cases:

{
    "minecraft": {
        "stone": "",
        "stronghold": "",
        "chests/buried_treasure": ""
    }
}

In some sections of the JLI configs you might find example_namespace/example_<object> used within namespaced keys. If you see this that means that JLI will expect a namespaced key in this format.
So for a loot table this would look like this: minecraft/chests/buried_treasure.

main

In this section you will find all main configs.
These can be found in plugins/JustLootIt.


plugin.json

The plugin.json contains just "debug" settings.

Path Description Default value Valid values
debug.conversion Setting this value to true will make it so JustLootIt doesn't delete the conversion.properties file after a conversion process is done.
This means that next time the server is started, it will start the conversion process again.
This will continue until the file is deleted.
false true
false
logger.state The logger state determines how much debug information JustLootIt should print o the console. NORMAL will not print any, while DEBUG will print the most important. EVERYTHING is used for precise tracking of actions but isn't really used in JustLootIt. NORMAL NORMAL
DEBUG
EVERYTHING

config.json

The config.json contains general settings.

Path explanations

Path Description
cache.player This section defines options for the per-player inventory cache. This cache is used to store opened container inventories.

Whenever a player opens a container inventory which they haven't opened before it will be put inside that cache. If the cache is full the inventory at the bottom of said cache is being deleted, meaning that container can not be accessed again until it refreshes. If it never refreshes it will never be accessible to that player again. The cache has a fixed size for each player and is saved within the main world of the server.

However if a player opens a container they haven't opened before it will be pushed to the top of the cache. Meaning the inventory will be the last to be deleted.

Lastly the cache also serves to speed up repeated opening of the same container by keeping inventories in RAM for some time before freeing that memory and saving the inventory to disk.
cache.level This section defines options for the per-world container cache. This cache serves to speed up repeated opening of the same container by keeping it in RAM for some time before freeing that memory and saving pending changes to disk.
container This section defines options for container behaviour.
loot This section defines options for loot generation behaviour.
worlds This section defines options related to the world settings.

Values

Path Description Default value Valid values
cache.player.size Sets the player inventory cache size. 20 Min: 1
Max: 240
(48 in <= 2.13.1)
cache.player.timeout-inventory-days The amount of days a inventory should be kept in the inventory cache without being accessed. 7 Min: 1
Max: 2147483647
cache.player.keep-in-memory The amount of seconds a cached inventory should be kept in RAM before it is being freed. 120 Min: 15
Max: 3600
cache.level.keep-file-open The amount of seconds a file should be kept open without access. (This is currently not being used for some reason and set to 180 seconds, I think it was used before but it isn't at the time of writing this config) 9000 Min: -2147483647
Max: 2147483647
cache.level.keep-in-memory The amount of seconds a container should be kept in RAM before it is being freed. 600 Min: 15
Max: 3600
container.delete-on-break If a container should be deleted from JLIs' storage once a block related to said container is broken. true true
false
container.can-items-be-stored If players are allowed to put items into JLI containers. (Disabling this means they can only take items out) true true
false
loot.unique Enabling this will use the players unique id in combination with the loot table seed to generate loot. Making it so every player gets different loot from the same container. (Enabling this means the loot will be different from the vanilla minecraft seed) false true
false
worlds.enable-whitelist Enabling this will make it so worlds which don't have the whitelisted value within their settings.json set to true will not be processed by the automatic conversion process. This is not related to the /jli convert command

message.json

This config contains all messages JustLootIt uses.
This section will just describe the syntax instead of which messages exist.

Color codes All normal minecraft color codes work including some custom ones

Code Description Color (in Hex)
&0 A color code for the color black. #000000
&1 A color code for the color dark blue. #0000AA
&2 A color code for the color dark green. #00AA00
&3 A color code for the color dark aqua. #00AAAA
&4 A color code for the color dark red. #AA0000
&5 A color code for the color dark purple. #AA00AA
&6 A color code for the color gold. #FFAA00
&7 A color code for the color gray. #AAAAAA
&8 A color code for the color dark gray. #555555
&9 A color code for the color blue. #5555FF
&a A color code for the color green. #55FF55
&b A color code for the color aqua. #55FFFF
&c A color code for the color red. #FF5555
&d A color code for the color light purple. #FF55FF
&e A color code for the color yellow. #FFFF55
&f A color code for the color white. #FFFFFF
&l A color code for making text bold.
&m A color code to strike through text.
&n A color code to underline text.
&o A color code to make text italic.
&r A color code to remove all previous formatting.

In addition to minecrafts' normal color codes JustLootIt also supports hex color codes and gradients.
The syntax of which is the following:

Syntax Example Description
&HEX_CODE &#000000 A normal hex color code.
&[HEX_CODE_1-HEX_CODE_2] &[#000000-#FFFFFF] A gradient hex color code. It interpolates between the first color up to the second color.
&[HEX_CODE_1-HEX_CODE_2/COLOR_AMOUNT] &[#000000-#000000/5] A gradient hex color code with a defined amount of colors. It interpolates between the first color up to the second color and only uses a defined amount of colors.

Lastly JustLootIt also has support for placeholders and message references.

Syntax Description
$placeholder
$place.holder;
This is a placeholder. It is replaced by JustLootIt with values. JustLootIt does not support Placeholder API or something similar at the moment.
$#message_name
$#message.name;
This is a message reference. It references a known message of JustLootIt. It is used a lot within the translation config to reference the plugins' name or prefix.

refresh_groups.json

This config allows to define so called Refresh groups.

Each refresh group is identified by the name of the section it is in, so the key of the section is the id of the refresh group.

Path Description Default value Valid values
<id>.unit The time unit used for the time value. MILLISECONDS DAYS
HOURS
MINUTES
SECONDS
MILLISECONDS
MICROSECONDS
NANOSECONDS
<id>.time The amount of time a player has to wait until the loot of a container will refresh. (Refreshing starts at the time the container was opened initially or after the last refresh)
0 means it will never refresh.
0 Min: 0
Max: 9223372036854775807
<id>.unique Enabling this will use the players unique id in combination with the loot table seed to generate loot. Making it so every player gets different loot from the same container. (Enabling this means the loot will be different from the vanilla minecraft seed)
global will set this to whatever is set in the config.json.
global global
true
false
<id>.incremental This will make it so the amount of times a container has been looted is being used in combination with the seed of the container to generate loot. Meaning each time a player opens the same container the loot generated will differ. This also works in combination with the unique loot option. true true
false

worlds

In this section you will find configs which are per-world.
You can find them in plugins/JustLootIt/worlds/<world>.


settings.json

This config provides various settings related to containers within a world.

Path explanations

Path Description
blacklist This section allows to blacklist various things from the automatic conversion. Any setting in here does not affect the /jli convert conversion process.
refresh This section provides the ability to apply default refresh groups within this world without changing any containers.
destruction This section defines options to set which kind of explosions are allowed to destroy JLI containers.

Values

Path Description Default value Valid values
whitelisted Whitelists this world. This setting is only relevant if worlds.enable-whitelist is enabled in the config.json. For more information read the description of said setting. false true
false
blacklist.structures This namespaced key section allows you to blacklist structures from being processed in the automatic conversion process. any namespaced key
blacklist.loottables This namespaced key section allows you to blacklist containers with the blacklisted loot tables from being converted in the automatic conversion process. any namespaced key
blacklist.containers.vanilla This disables the creation of vanilla containers in the automatic conversion process. false true
false
blacklist.containers.static This disables the creation of static containers in the automatic conversion process. false true
false
blacklist.containers.frame This disables the creation of frame containers in the automatic conversion process. false true
false
blacklist.containers.compatibilities This list allows to disable compatibility containers of the listed compatibilities from being created in the automatic conversion process. any plugin compatibility

As of editing this wiki:
betterstructures
customstructures
iris
refresh.world_group Sets the default refresh group for this world. any refresh group
refresh.container_groups This namespaced key section allows to set default refresh groups for container types or loot tables.
The justlootit:container/static key represents static containers.
The justlootit:container/compatibility/example_namespace/example_loot_table key represents a compatibility container.
The justlootit:container/frame/example_namespace/example_item_id key represents a frame container.
any refresh group
destruction.unknown_allowed Enables explosions unidentifiable to JLI to destroy JLI containers. false true
false
destruction.bed_allowed Enables bed explosions to destroy JLI containers. false true
false
destruction.respawn_anchor_allowed Enables respawn anchor explosions to destroy JLI containers. false true
false
destruction.creeper_allowed Enables creeper explosions to destroy JLI containers. false true
false
destruction.end_crystal_allowed Enables end crystal explosions to destroy JLI containers. false true
false
destruction.tnt_allowed Enables tnt explosions to destroy JLI containers. false true
false
destruction.player_unrecognised_explosion_allowed Enables explosions related to a player but unidentifiable to JLI to destroy JLI containers. false true
false


Clone this wiki locally