Custom Stuff

Custom Stuff
Логотип (Custom Stuff).png
Для издания Java Edition
Автор CubeX2
Дата выпуска 7 февраля 2015 г.
Последняя
версия
0.7.10 / 0.11.10 / 0.10.23
Совместимо с 1.7.10 / 1.10.2 / 1.11.2
Установка См. Установка
Требования Minecraft Forge
Ссылки

Custom Stuff — это модификация для Minecraft, с которым абсолютно любой человек, не знающий язык Java, может добавить в игру различные блоки, предметы, инструменты, броню, пищу, рецепты крафта и другое (см. ниже).

Установка

  1. Установите Minecraft Forge.
  2. Скачайте Custom Stuff.
  3. Скопируйте файл в папку <папка игры>/mods.

Категория: Блоки

У блоков должны быть в обязательном порядке 3 параметра:

Параметр Примечание
name Можно именовать на русском языке, если используется русификатор, но игроки, у которых английская раскладка, увидят лишь непонятные символы.
id У блоков есть ограничение: [97 ... 255]
texturefile Путь к текстуре блока. Текстура должна быть разрешением 16×16 и помещена в архив .minecraft/mods/custom stuff.zip
Gravity lantern.png
(пример текстуры справа)

Дополнительные параметры блоков

Параметр Базовое значение Описание
type normal Определяет тип блока (normal, fence, fencegate, stairs, door, slab, crosstexture, torch, pressureplate, chest, pane, liquid, trapdoor).
textureindex не имеет значения. Может быть использован для текстур-файлов. Порядок начинается от 0, слева направо и от верха.
textureindex1 не имеет значения. textureindex1 to textureindex15. textureindex for damage values. Same with the other texture properties.
texturefiletop не имеет значения. Верхняя текстура блока.
texturefileeast не имеет значения Восточная боковая сторона блока.
texturefilewest не имеет значения Западная боковая сторона блока.
texturefilenorth не имеет значения Северная боковая сторона блока.
texturefilesouth не имеет значения Южная боковая сторона блока.
textureindextop не имеет значения Верхняя индексная сторона блока. То есть нужно указать номер текстуры из файла, где 0,0 — самая верхняя левая, 0,1 — чуть ниже, 1,0 — чуть правее и т. д..
textureindexeast не имеет значения Западная индексная боковая сторона блока.
textureindexwest не имеет значения Восточная индексная боковая сторона блока.
textureindexnorth не имеет значения Северная индексная боковая сторона блока.
textureindexsouth не имеет значения Южная индексная боковая сторона блока.
chesttexturefile1 не имеет значения chesttexturefile1 to chesttexturefile7. Текстуры для сундука. Смотрите chesttextures.png (такое изображение имеется в архиве), в котором пронумерованы числа для текстур.
Chesttextures.png
material rock Материал, из которого состоит блок(grass, ground, wood, rock, iron, cloth, sand, glass).
damagevalues 0 Number of damage values the block has [1 ... 15] (По умолчанию 0). "Индексация" блока (пример: красители имеют номер 351 и 15 значений (по одному для каждого красителя)). Только для типа normal, fence и crosstexture.
name1 не имеет значения Имя для индексированных блоков name1, name2...
redstoneonly False Только для дверей. Если поставить true, то дверь можно открыть только с помощью красного камня.
texturefilebottom не имеет значения Только для дверей. Путь к текстуре нижней части двери.
doubleslabid не имеет значения Только для плит. ID блока, который устанавливается, когда вы размещаете одну плиту над другой. Если этого не установлено, то невозможно сделать двойную плиту.
stepsound stone Звук ходьбы по блоку. Так же производиться звук размещения/уничтожения блока. Имеющиеся звуки (wood, gravel, grass, stone, metal, cloth, glass).
hardness 1 Сложность добычи блока. (например: обсидиан 10; грязь 0,5; камень 1)
resistance 0 Устойчивость ко взрыву. (например: обсидиан 2000; камень 10)
light 0 Яркость освещения блока (например: светящийся камень 15; факел 14)
opacity 255 Сколько света проходит через блок [0 ... 255]. (например: 255 = свет не проходит через блок, 0 = весь свет проходит через блок)
iddropped тот же самый блок Блок, материал, который выпадает из блока.
iddropped1 iddropped iddropped1 to iddropped15. iddropped for damage values.
quantitydropped 1 Количество выпадаемых предметов/блоков. Можно поставить случайное количество (например: 3-6).
damagedropped 0 Which damage value the block drops.
damagedropped1 Default is the damage the block has damagedropped1 to damagedropped15. damagedropped for damage values.
transparent False Поставьте true, если блок имеет прозрачную текстуру.
speed 0.6 Как быстро можно передвигаться по блоку (стандартно: 0.6).
gravity False Если поставить true, то гравитация будет влиять на блок (пример: песок и гравий).
collision true Если поставить false, то через блок можно проходить.
movebypiston true Если поставить false, то блок невозможно будет двигать с помощью поршня.
pressureplatetrigger all Блок активируется нажимной пластиной. Возможные значения (all, player, monster, animal, creature, item, noplayer, nomonster, noanimal, nocreature and noitem). Нельзя использовать несколько значений.
destroyed не имеет значения Функции, которые вызываются, когда игрок разрушил блок.
destroyed1 не имеет значения destroyed1 to destroyed15. destroyed for damage values. Same with clicked, added etc.
clicked не имеет значения Функции, которые вызываются при нажатии ЛКМ на блок.
neighborchanged не имеет значения Функции, которые вызываются, когда рядом с блоком меняется соседний блок.
added не имеет значения Функции, которые вызываются, когда блок был установлен.
activated не имеет значения Функции, которые вызываются, когда подключен с красным камнем.
deactivated не имеет значения Функции, которые вызываются, когда блок отключен от красного камня (не совсем верный перевод).
rigthclicked не имеет значения Функции, которые вызываются, когда игрок щёлкнет правой кнопкой мыши на блок.

Пример создания блока (на примере фонаря) и блока, который вызывает молнию

id=170; name="Фонарь"; texturefile="Lantern.png"; 
id=170; name="Фонарь"; texturefile="Lantern.png"; light=15; material="glass"; stepsound="glass"; 

Блок «Призыватель молний»

id=195; name="Призыватель молний"; texturefile="имя_вашей_текстуры.png"; 
id=195; name="Призыватель молний"; texturefile="имя_вашей_текстуры.png"; material="iron"; stepsound="metal"; activated = "world.createThunderbolt(origin);"; 

.

Список несложных функций

"world.createThunderbolt(origin);"; 
"world.createExplosion(origin, 3);"; 
"world.setWeather(1);"; 
"world.setTime(0);"; 
"world.spawnMob(origin, 'Pig');"; 

Категория: Предметы


У предметов в обязательном порядке должны быть три параметра:

Параметр Примечание
name Можно именовать на русском языке, если используется русификатор, но игроки, у которых английская раскладка, увидят лишь непонятные символы.
id У предметов есть ограничение (от 512 до 5000)
iconfile Путь к текстуре предмета. Текстура должна быть разрешением 16×16 и помещена в архив .minecraft/mods/custom stuff.zip
Derky Pickaxe.png
(пример текстуры справа)

Дополнительные параметры для предметов

Параметр Базовое значение Описание
type normal Определяет тип предмета (normal, food, helmet, body, legs, boots, grenade).
iconindex не имеет значения. Может использовано для текстур-файлов (содержащих более одной текстуры). Нумерация начинается от 0, слева-направо и сверху.
maxstack 1 Определяет максимальное значение в одном стаке. Максимально доступное значение: 64
healamount 1 Определяет количество утоления пунктов голода. Максимально доступное значение: 20 (1 — половинка пункта голода).
saturation 0.6 Value for the saturation.
efficiency 4 Эффективность инструментов (скорость добычи блоков. Например: деревянный: 2, алмазный: 8).
damage 1 Наносимый инструментами/оружием урон. (Например: деревянный: 0, алмазный: 3)
maxuses броня: 16, еда: 1, все остальные: 64 Количество использований инструмента или предмета.
harvestblocks all Определяет силу кирки (какие блоки может разрушать кирка). Допустимые значения: all, pickaxewood, pickaxestone, pickaxeiron, pickaxediamond, default или любой ID блока. Ставьте несколько ID, разделяя их запятой.
efficiencyblocks не имеет значения Определяет тип инструмента. Данные значения также должны быть в "harvestblocks". Допустимые значения: all, none, pickaxe, axe, shovel and any blockid. Можно использовать несколько значений,разделив их запятой ",".
armorname не имеет значения Путь к текстуре брони. Внимание! В архиве .minecraft/mods/custom stuff.zip нужно создать папку "armor" и положить текстуру туда. Для брони требуется два изображения брони (см. архив minecraft/armor).
infiniteair False Только для брони. Если поставить true, то игрок может бесконечно дышать под водой с этой бронёй. (Only Singleplayer)
noburning False Только для брони. Если поставить true, то игрок никогда не загорится (не купайтесь в лаве — бесполезно(наносит урон)). (Only Singlepalyer)
nofalldamage False Только для брони. Если поставить true, то игроку не будет наноситься урон от падения. (Only Singlepalyer)
grenadetime 50 Время до взрыва гранаты.
grenadethrowforce 1 Сила броска гранаты.
rightclick не имеет значения Функции, вызываемые, когда игрок предметом нажимает правой кнопкой мыши по блоку.
blockdestroyed не имеет значения Функции, вызываемые, когда игрок уничтожает блок.
hitmob не имеет значения Функции, вызываемые, когда игрок бьёт моба или игрока этим предметом.
explode не имеет значения Функции, вызываемые, когда взрывается граната. Если вы не поставите это значение, то гранаты будут просто пропадать без какого-либо эффекта.
eaten не имеет значения для еды (food). Функции, вызываемые, когда съеден предмет.

Пример создания предмета

id=1503; name="Derky Pickaxe"; iconfile="Derky_Pickaxe.png"; 
name="Derky Pickaxe"; id=1503; iconfile="Derky_Pickaxe.png"; type="normal"; maxuses=2048; harvestblocks="pickaxediamond"; efficiencyblocks="pickaxe"; efficiency=16; damage=1; blockdestroyed="player.damageItem(player.getCurrentSlot(), 1);"; hitmob="player.damageItem(player.getCurrentSlot(), 512);"; 
Свойства данной кирки:
  • Уничтожается с 4 ударов, если атаковать ей мобов. (hitmob)
  • Эффективность в два раза выше, чем у алмазной кирки. (efficiency)
  • Максимальное количество использований выше, чем у алмазной кирки на ~500. (maxuses, blockdestroyed)
  • Может добывать обсидиан. (harvestblocks, efficiencyblocks)

Создание функции на спаун предмета в инвентарь после применения другого

Вы не задумывались, почему же ваш игрок выпивает добавленную вами бутылку сока с бутылкой? Если задумывались, то этот раздел для вас:

  • Создаем файл с расширением .item
  • Делаем текстуру — 16×16, естественно.
  • А теперь наш предмет — бутылка с соком.
id = 701; name = "Бутылка с соком"; iconfile = "ваша_текстура.png"; type = "food"; maxstack = 1; saturation = 1.3; healamount = 2; eaten = "player.addToInventory(374, 1, 0);"; 
  • Первое число в функции — это id предмета, который будет спаунится в инвентарь после употребления вашего сока, в данном случае пустой пузырек. Второе число — количество предметов, которые заспаунятся в инвентарь. Третье — параметр damage предмета, не менять.
  • eaten — вызывает функцию, после съедания предмета.
  • Тестируете, всё ли нормально.

Категория: Рецепты

  • Чтобы создать рецепт, нужно создать файл с расширением .recipe в категории customRecipes и открыть его с помощью блокнота.
  • Файл должен быть один (то есть для создания одного и более рецепта хватает одной строки в блокноте).

Структура создания рецепта

  • Для крафта в ячейке 2х2:

Recipe Customstuff.jpg

recipes.addRecipe("X amount 2 2 1 2 3 4", "vanilla"); 
  • Для крафта в ячейке 3х3:
recipes.addRecipe("X amount 3 3 1 2 3 4 5 6 7 8 9", "vanilla"); 
  • Для крафта в нестрогом порядке предметов (размер ячейки указывать не нужно):
recipes.addShapelessRecipe("X amount 1 2 3 4 5 6 7 8 9", "vanilla"); 
  • Разбор крафта:

X — выходящий предмет.
amount — количество выходящих предметов.
2 2 (или 3 3) — сетка крафта.
1 2 3 4 — ингредиенты, поставленные по порядку (см. справа нумерацию крафта).

2×2

3×3

Удаление рецепта

  • Для удаления рецепта, написанного Mojang или другими модами, необходимо вписать следующие строки:
recipes.removeRecipe("X amount 3 3 1 2 3 4 5 6 7 8 9", "vanilla"); 
  • Разбор крафта:

X — выходящий предмет
amount — количество выходящих предметов
2 2 (или 3 3) — сетка крафта
1 2 3 4 — ингредиенты, поставленные по порядку (см. справа нумерацию крафта).

  • Пример:
recipes.removeRecipe("46 1 3 3 289 12 289 12 289 12 289 12 289 12", "vanilla");

Эта строка позволит удалить рецепт ТНТ

  • Для удаления бесформенного рецепта:
recipes.removeShapelessRecipe("X amount 1 2 3 4 5 6 7 8 9", "vanilla"); 

Категория: Топливо

  • Эта категория добавляет свойство предмету использоваться в печи в качестве топлива. Чтобы создать топливо, нужно создать файл с расширением .fuel в категории customFuels.

Для переплавки одной вещи необходимо 200 энергии (10 секунд). К примеру, у угля энергетический запас составляет 1600 ед. энергии, а у досок/древесины — 300 единиц. В одном файле с расширением .fuel можно хранить плавку всех предметов, то есть для каждой строки будет определено по одному горючему материалу.

  • Пример:

fuels.addFuel(«49 3200», «vanilla»); (Обсидиан может проплавить 16 предметов)
fuels.addFuel(«1 100», «vanilla»); (Камень может переплавить 0.5 предметов)

Категория: Создания рецепта переплавки

  • Эта категория добавляет свойство получать один предмет из другого путём переплавки в печи. Чтобы создать рецепт переплавки, нужно создать файл с расширением .srecipe в категории customSmeltingRecipes.

В файле example.srecipe нужно написать в одну строку:
smeltingRecipes.addRecipe(«X 1 amount», «vanilla»);
X — какой предмет (или блок) надо переплавить
amount — количество вещей
1 — получившийся предмет.

Категория: Создание генерации руды

  • Чтобы создать генерацию руды (блока), нужно создать файл с расширением .oregen в категории customOreGeneration.
Параметр Базовое значение Описание
id не имеет значения. id генерируемого блока.
damage не имеет значения. Мета-идентификатор. Пример — разноцветная шерсть имеет один идентификатор, но разные мета-идентификаторы, для поврежденных кирок эти мета-идентификаторы также различны.
type normal Тип генерируемого блока (normal, flower)
size не имеет значения. Количество генерации блоков в одном месте.
generationblocks не имеет значения. Определяет параметр, возле каких блоков генерируется блок.
heightmin не имеет значения. Минимальная высота по альтитуде.
heightmax не имеет значения. Максимальная высота по альтитуде.
rate не имеет значения. Количество генерации залеж в одном чанке.
Пример:
id=35; damage=10; type="normal"; size=10; rate=10; generationblocks=1; heightmin=0; heightmax=128; 

Блоки и предметы с различными функциями

Гравитационная установка

  • Гравитационная установка (блок имеет два режима: обычный (не подключен красный камень) и ультра (подключен красный камень), при первом высота подкидывания — 6-8 блоков, при втором — около 40).
  • Создаем файл с расширением .block.
  • В нём пишем:
id = 205; type = "normal"; name = "Гравитационная Установка (обычный режим)"; texturefile = "ваша_текстура.png"; damagevalues = 1; material = "iron"; stepsound = "metal"; hardness = 1; rightclicked = "player.addVelo(0, 1, 0);"; activated = "world.setBlockMetadata(origin, 1);player.sendMessage('Активирован ультра-режим.');"; name1 = "Гравитационная Установка (ультра-режим)"; iddropped1 = 205; damagedropped1 = 0; rightclicked1 = "player.addVelo(0, 3, 0);"; deactivated1 = "world.setBlockMetadata(origin, 0);player.sendMessage('Активирован обычный режим.');"; 
  • Готово! Переключать режимы лучше всего рычагом, выключен — обычный режим, включён — ультра-режим. Чтобы установка вас подкинула, нажмите на неё ПКМ. Летайте на здоровье и не переломайте ноги!

Направленный телепортатор

  • Направленный телепортатор перемещает ГГ в место прицеливания, при нажатии ПКМ. И дабы избежать читерства, ограничим радиус действия телепортатора до 20 блоков.
  • Итак, в папке CustomItems создаем файл с расширением .item, и пишем туда:
name="Направленный телепортатор"; id=793; type="normal"; iconfile="ваш_файл.png"; iconindex=1; maxstack=1; rightclickair = "customstuff.loadScript('portalgun.script')"; 
  • Сам телепортатор готов. Теперь делаем скрипт для него.
  • В папке customStuffFunctions создаем файл с расширением .script, в нём пишем:
var x = player.getLookX(20); // \ var y = player.getLookY(20); // > можно вставить свои значения. var z = player.getLookZ(20); // / player.setPosition(x, y+3, z); 
  • Всё готово. Теперь сохраняете и тестируете.
  • Иконка для телепортатора: Teleportator for customstuff.png

Электро-Винтовка

(Материал с minecraftmodcustomstuff.wikia.com)
  • Винтовка вызывает электро-разряд с небес в место прицеливания, и для выстрела использует светящуюся пыль. Максимальный радиус 60 блоков.
  • В папке CustomItems создаем файл с расширением .item, и пишем в нём:
name="Электро-Винтовка"; id=793; type="normal"; iconfile="ваш_файл.png"; iconindex=1; maxstack=1; rightclickair = "if(player.getItemCount(348, 0) >=1 ){customstuff.loadScript('lightingweapon.script')}"; //проверка, если в инвентаре есть светящаяся пыль то запускаем скрипт. 
  • Теперь делаем скрипт для винтовки.
  • В папке customStuffFunctions создаем файл с расширением .script, туда пишем:
var x = player.getLookX(60); // \ var y = player.getLookY(60); // > можно выставить свои значения(в блоках) var z = player.getLookZ(60); // / world.createThunderbolt(x, y, z);//создаем молнию в этих координатах (направление взгляда ГГ) player.removeFromInventory(348, 1, 0); //забираем 1 светящуюся пыль из инвентаря (первое число id) 
  • Винтовка готова.
  • Кому нужна иконка, вот: Lightingwpn for customstuff.png

Ошибки (CS1)

  • Если созданной киркой ударить по земле, траве, гравию, песку и многим другим блокам, игра крашнется и выдаст ошибку.
  • В многопользовательской игре нельзя открыть двери с атрибутом «redstoneonly».
  • В многопользовательской игре двери зачастую открываются только со стороны клиента. Из-за этого иногда невозможно пройти через них.
  • Атрибут брони «noburning» и тому подобные не работают в сетевой игре.
  • До выхода CustomStuff 2 предметы в руке отображались большими в два раза и перевёрнутыми, подобно инструментам и кости.
В данной статье используются материалы из статьи «Custom Stuff» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0. Авторы статьи.