Core and Libraries - pearuhdox/Cartographer GitHub Wiki

Cartographer depends on a set of helper functions and systems known as "Core" as well as a couple other external libraries. These libraries are provided for you in the download, so there is no need to worry about needing to download external datapacks. This page details some important information about Core, and some of the utility it offers, as well as links to the respective libraries (so you can check out how they work and use them yourself). All Libraries in Cartographer are provided exactly as they are from the original provider, with the permission of the original provider. (So copies provided from their github pages will work.)

All packs outside of Core are designed to be modular, so mappers have the flexibility to install what they wish. However, some features that utilize features in other packs (e.g. Custom Enchantments that inflict Custom Statuses) will not work properly without all needed packs installed.

Installation

Installing Cartographer is designed to be fairly simple and easy. To do so:

  1. Navigate to the main page of this github (Code in the upper left corner of the site) and download the latest release (found in Releases, on the right side of the main page)

  2. Download the source code from the latest release, unzip the source, and drag and drop all Datapacks you want into your datapacks folder of your minecraft world (located in .minecraft/saves). In addition, install Core and all Libraries included in the download in your datapacks folder.

  3. Move the zip file "Delta Resourcepack" out of your datapacks and into your resource pack folder. This is the Delta Resourcepack that works with Cartographer and you will want to bundle it with your world as a resources.zip when you release your map. (You may have to combine existing textures for your map with the pack if you have another resource pack to use. Guidance can be seen on the Delta FAQ wiki page.)

  4. Open your world and the packs should auto install. If your world is already open, type /reload in the chat to reload your world and install the packs. Make sure you turn on the Delta Resourcepack!

  5. If installed correctly, you should receive a chat message upon reloading/startup.

  6. Alternatively, instead of navigating to Releases, you can download the beta branch by changing your branch from "master" to "beta-branch-2021" (in the upper left corner of the main page, the button that is by default labeled "master"). Once you change your branch, you can use the download from the main page to get the Datapacks and install them in the same way you install the normal release. Beta versions are not guaranteed to be stable, and may have bugs, optimization issues, or other issues. They also do not have constantly updated changelogs.

It is important to note that no module in Cartographer will work properly without Core or the below Libraries. Make sure you include them in your world even though they do not add features!

Libraries

Delta Library by BigPapi

This pack adds customizable and extensive player motion commands via tech with negative explosion creepers (yes its magic). Because of this, it requires a Resource Pack provided with both Cartographer and with Delta itself. More information can be found at its link or in the Delta FAQ tab on this wiki.

Link and Documentation: https://github.com/BigPapi13/Delta

Entity Id and Hit Detection by Gibbs (gibbsly)

Entity Id and Hit Detection is a datapack which detects when players or mobs attack each other. It tracks the attackers and attackees and allows Cartographer to run effects from the positions of the player and the entity.

Link and Documentation: https://github.com/gibbsly/ehid

Player Data Storage by Suso (5uso)

Player Data Storage by Suso is a datapack which creates a modular array of custom data that is tied to individual players. This allows each individual player to have unique stored custom data (which Cartographer uses to track custom data or manipulate the player’s inventory).

Common Damage Library by RockNRed and PearUhDox

Common Damage Library (CDL) is a datapack which allows for doing precise and custom damage to an entity via a function command. Damage can be dealt normally (meaning blocked by armor and enchantments) or as true damage (unblockable by any means).

Black Box Library by RockNRed, 14er, PearUhDox, and NickNackGus

Black Box Library is a collection of utilities designed by the above authors. It allows for random number generation, subtracting precise xp, and other various functions.

Inventory Manipulation by McTsts

Inventory Manipulation is a datapack that allows for easy saving and loading of a player’s inventory into or from storage. Cartographer uses a modified version to fix a bug. The original version will disable the vanilla shulker loot box loot table. (It will not drop properly).

Mob Motion by CooleyBrekka and Suso

Mob Motion allows for dynamically pushing entities in any direction at any velocity. Cartographer uses a modified version made by Suso to improve the performance of the pack.

Core Functionality

Loot Table Overwrites

Cartographer replaces every vanilla minecraft mob loot table with an alternative default to do entity death detection. This means that any custom mob loot tables you wish to add will also need to have the added format changes, else some effects from Cartographer will not work properly.

The following is the Bat’s loot table in Core.

{
  "type": "minecraft:entity",
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:loot_table",
          "name": "cartographer_mob_abilities:death_test/test"
        }
      ]
    },
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:loot_table",
          "name": "cartographer_custom_statuses:death_test/test"
        }
      ]
    }
  ]
}

In order to make any custom mob loot table work with cartographer effects, the following code will need to be added to the "pools" section of the loot table.

{
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:loot_table",
          "name": "cartographer_mob_abilities:death_test/test"
        }
      ]
    },
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:loot_table",
          "name": "cartographer_custom_statuses:death_test/test"
        }
      ]
    }
⚠️ **GitHub.com Fallback** ⚠️