Carry On

From the Fear Nightfall wiki · Carry On
Carry On

Carry On is a mod that lets a player pick up placed blocks with block entities, mobs, other entities and players, carry them, and set them down again elsewhere. It adds no items, blocks, recipes or world generation of its own. Its value to a player in Fear Nightfall is mobility: a chest full of loot, a furnace, a stack of animals or a friend can be moved across the world without breaking or re-crafting anything.

Overview

Carry On is an interaction mod. It changes how the player uses empty hands on the world. Holding the carry input while right-clicking a valid target picks it up; right-clicking a free space with a carried object sets it down. Everything it picks up is removed from the world and stored on the player, and the carried state is kept when the player logs out. Death drops it back into the world (see Carry On).

In Fear Nightfall the mod is one of the pack's utility tools. It is not part of the horror theme, but it interacts with the pack's structures, storage and mob content, so its limits matter. The pack keeps the mod's default configuration (see Carry On).

Content

Carry On registers no items, blocks, mobs, entities, effects, enchantments, recipes, loot tables, advancements, biomes or structures. Its content is limited to the following.

  • Keybind: "Carry" in the "Carry On" category. It is unbound on NeoForge by default, so holding sneak (Shift) is the carry input. The Controls and Keybinds page lists the other controls. The optional Amecs API integration changes the default binding.
  • Commands: /carryon debug (any player), /carryon clear (self for any player, a target for operators at level 2) and /carryon place (operators at level 2, places the carried object at the player's position). See Gamerules and Commands.
  • Data tags: six empty tags (block_whitelist, block_blacklist, entity_whitelist, entity_blacklist, stacking_whitelist, stacking_blacklist) that a datapack can extend without replacing.
  • Configuration: a common config (pickup range, slowness, stacking, blacklists) and a client config (arm rendering, model overrides).

Block entities that are carried

The mod works on any block with a block entity that is not blacklisted. Examples include chests, furnaces and spawners. The default blacklist names the storage, machine and decoration blocks of many mods, including the storage mods covered in Storage Options, Farmer's Delight cabinets and counters, and Gravestones from the Graveyard mod. Those blocks cannot be picked up by default.

Mobs and players

Non-hostile mobs and players can be carried. Hostile mobs cannot be picked up in survival by default, but creative players can carry them; see Mobs for the mob types. Tamed mobs can only be picked up by their owner (see Pets and Companions). A mob that has a rider ejects it and is unleashed before pickup. Horses and Ender Dragons cannot serve as the base of a stack.

Mechanics

Pickup. A pickup needs empty main and offhand hands, a player in survival or creative mode (not spectator or adventure mode), and a target within 2.5 blocks. The reach scales with the interaction-range attribute (see Player Attributes). Pickups and placements cannot happen on the same tick.

Block pickup. The block must have a block entity unless the config option to pick up all blocks is on. Doors, beds and two-high plants are rejected because they have the vanilla double-block half property. Unbreakable blocks are rejected for survival players. Locked block entities are rejected. The block state and block entity data are stored on the player, and the block is removed after a break event is posted, so protection mods can veto the pickup.

Block placement. The target must be replaceable. The block state is restored, except for a short list of properties that are recalculated when the block is placed. These include a chest's type, a stone button's face, vine sides, glow lichen sides, oak sign and oak trapdoor orientation, and creeper head rotation. Block entity data, such as chest contents, is re-applied. A placement event is posted and can cancel the placement.

Entity pickup. Invulnerable, removed and non-owned tamed entities are rejected. In survival, an entity wider than 1.5 blocks or taller than 2.5 blocks is rejected; both sizes scale with the player's own scale. Babies are rejected when their adult form is blacklisted, unless the config allows babies. Entities on the blacklist are rejected, including projectiles, item frames, armour stands, paintings, shulkers, end crystals, Ghasts and Ender Dragons. The entity is removed from the world while carried and placed again on setting down; a mob placement goes through the normal spawn position check, which can cancel placement.

Players. Player pickup is enabled by default. Creative players cannot be picked up by survival players. A carried player rides the carrier, and the carrier cannot attack or break blocks while carrying unless the config allows it.

Stacking. A carried entity can be placed on top of another entity or player that is not on the stacking blacklist. Stacks are limited to 10 entities by default. With size mattering enabled, a larger entity cannot be placed on a smaller one.

Slowness. Every successful pickup gives the player the vanilla Slowness effect (movement slowdown) for a very long duration. The effect is hidden: it has no icon and no particles. Its strength depends on what is carried. Block weight is based on the length of the block entity's data, entity weight on its size, and players count as a fixed weight. The strength is capped at Slowness IV. Creative players receive the slowdown by default. Placing an object removes every Slowness effect on the player, including Slowness from potions or other mods, not only the one from Carry On.

Death and disconnect. If the player dies while carrying, the carried object is dropped at the place of death, unless keepInventory is on, in which case it moves to the new player entity. A carrier who disconnects places the carried object. A player who dies while carrying another player releases that player.

Scripts. Pickup scripts are datapack JSON files that can change the rules for specific blocks or entities, including conditions based on advancements, game modes, position and effects. They are disabled by default in the config. If they are disabled, no scripts run.

Changes to vanilla

  • Right-clicking a block or entity with empty hands is intercepted. Vanilla interaction is cancelled on a successful pickup or placement.
  • Breaking blocks is disabled while carrying, and attacks on entities are cancelled, unless the config allows hitting while carrying. By default, being hit does not drop the carried object.
  • The hotbar is locked to the carry slot while carrying. Number keys, the pick-block key and the swap-paint key do nothing.
  • Auto-pickup cannot use the carry slot, so a carried object is not overwritten by items.
  • Entities can be stacked, and players can be carried and ridden. Player riding is overridden for carrying players.
  • Placement keeps block states, which differs from placing an item.
  • Carried objects are hidden from the first-person view, and the player's arm pose changes in third person. Some items are shown as other blocks while carried: redstone wire as redstone dust, bamboo saplings as bamboo, and candle cakes as cake.
  • Block pickups and placements post the vanilla break and placement events, so claim and protection mods can react.

In Fear Nightfall

The pack keeps the mod's default configuration. For the settings described above, the pack's config file matches the defaults: a 2.5-block pickup range, a 10-entity stack limit, hostile mobs not allowed in survival, scripts off, and the default blacklist.

The pack's changelog records that Carry On was checked against Handcrafted and found to need no change. See Horror and Spooky Content for the pack's horror content, and Structures for the placed structures whose chests and spawners are the most likely things a player will carry.