本篇教程由作者设定未经允许禁止转载。


本教程的资料来源于官方WIKI

开始要做的

  1. 首先把GrS放入mods文件,并启动一次,让他生成文件.

  2. 然后打开:minecraft\groovy\postInit 这里就是存放脚本的地方.

  3. 使用 VScode 或其他文本编辑器打开文件.

注意事项

  • 脚本必须是以下格式:  任意名称.groovy

  • 所有脚本和运行配置必须位于minecraft\groovy\postInit中.

  • 脚本和文件夹可以具有任何名称.

  • 脚本必须在要执行的运行配置中以某种方式定义.

会用到的指令

  • 获取手上物品(目视方块)数据/grs hand

  • 热重载/grs reload

  • 输出日志/grs log

魔改工作台配方

添加工作台配方

//创建一个有序配方

    crafting.shapedBuilder()          
            .name('配方名')            // 配方名
            .output(输出物品 * 数量)      // 输出物品 (*数量)可省略
            .matrix('NIN',               // 配方格式
                    'DSD',              
                    'NIN')
            .key('N', 输入物品)  // 将物品定义为N
            .key('I', 输入物品)  // 将物品定义为I
            .key('D', 输入物品)  // 将物品定义为D
            .key('S', 输入物品)  // 将物品定义为S
            .register()          // 结束
            

//创建一个有序配方

    crafting.shapedBuilder()
            .name('配方名') // 配方名
            .output(输出物品 * 数量) // 输出物品 (*数量)可省略
            .matrix('N N', // 可省略较小配方的行和列
                    ' S ',) // 希望插槽为空打空格即可
            .key('N', 输入物品) // 将物品定义为N
            .key('S', 输入物品) // 将物品定义为S
            .register() // 结束


// 创建一个无序配方

    crafting.shapelessBuilder() 
            .name('配方名') // 配方名
            .output(输出物品 * 数量) // 输出物品 (*数量)可省略
            .input(输入物品1)                        
            .input(输入物品2)                        
            .input(输入物品3, 输入物品4)    
            .register()

另一种方式 

//添加一个3*3的有序配方,
    crafting.addShaped(输出物品, [
        [输入物品1, 输入物品2, 输入物品3],
        [输入物品4, 输入物品5, 输入物品6],
        [输入物品7, 输入物品8, 输入物品9]
    ])

//添加一个2*2的配方
    crafting.addShaped(输出物品, [
        [输入物品1, 输入物品2],
        [输入物品3, 输入物品4]
    ])
    
//添加一个无序配方.
    crafting.addShapeless(输出物品, [输入物品1, 输入物品2, 输入物品3])
    
//八个泥土围一圈合成四个黏土块
    crafting.addShaped(item('minecraft:clay')*4, [
        [item('minecraft:dirt'), item('minecraft:dirt'), item('minecraft:dirt')],
        [item('minecraft:dirt'), null, item('minecraft:dirt')],
        [item('minecraft:dirt'), item('minecraft:dirt'), item('minecraft:dirt')]
    ])
    
//三个木板竖着合成一个木棍
crafting.addShaped(item('minecraft:stick'), [
    [ore('plankWood')],
    [ore('plankWood')],
    [ore('plankWood')]
])

//一个金锭和一个黏土无序合成成钻石
crafting.addShapeless(item('minecraft:diamond'), [item('minecraft:clay_ball'), item('minecraft:gold_ingot')])

移除工作台配方

crafting.remove(删除物品)
//也可以写成
crafting.removeByOutput(删除物品)

魔改熔炉配方

添加熔炼配方

furnace.add(输入物品, 输出物品, 经验数量f)
//(经验数量f)可省略

删除熔炼配方

furnace.removeByInput(输入物品)

矿辞修改

添加矿辞

//三种方法都行
oreDict.add("amogus",item('minecraft:iron_ingot'))
//oreDict.add("矿辞",物品)
item('minecraft:iron_ingot').addOreDict(ore('amogus'))
//物品.addOreDict(要添加到的矿辞)
ore('amogus').add(item('minecraft:iron_ingot'))
//要添加到的矿辞.add(物品)

将物品从矿辞中删除

//三种方法都行
oreDict.remove("ingotIron", item('minecraft:iron_ingot'))
////oreDict.remove("矿辞",物品)
item('minecraft:iron_ingot').removeOreDict(ore('ingotIron'))
//物品.removeOreDict(矿辞)  
ore('ingotIron').remove(item('minecraft:iron_ingot'))
//矿辞.remove(物品)

实用拓展Actually Additions

 模组链接

魔改原子再构机

//添加配方  
    mods.actuallyadditions.atomic_reconstructor.recipeBuilder()
        .input(输入物品)
        .output(输出物品)
        .energy(消耗能量)//可省略
        .register()
//删除配方
    mods.actuallyadditions.atomic_reconstructor.removeByInput(输入物品)
    //删除有输入物品的配方
    mods.actuallyadditions.atomic_reconstructor.removeByOutput(输出物品)
    //删除输出物品的配方
    mods.actuallyadditions.atomic_reconstructor.removeAll()
    //删除所有配方

魔改充能台

//添加配方
    mods.actuallyadditions.empowerer.recipeBuilder()
        .mainInput(充能台中心物品)
        .input(输入物品1,输入物品2,输入物品3,输入物品4)
        .output(输出物品*数量) //数量可省略
        .time(用时) //单位为tick 一秒=20tick
        .energy(能量) //总耗电=能量*4
        .color(0.5, 0.3, 0.2) //激光颜色
        .register()
    
    mods.actuallyadditions.empowerer.recipeBuilder()
        .mainInput(充能台中心物品)
        .input(输入物品1,输入物品2,输入物品3,输入物品4)
        .output(输出物品*数量) //数量可省略
        .time(用时) //单位为tick 一秒=20tick
        .energy(能量) //总耗电=能量*4
        .particleColor(0x00FF88) //激光颜色
        .register()
    
//删除配方    
        mods.actuallyadditions.empowerer.removeByInput(中心输入物品)
        //删除输入物品的配方
        
        mods.actuallyadditions.empowerer.removeByOutput(输出物品)
        //删除输出物品的配方
        
        mods.actuallyadditions.empowerer.removeAll()
        //删除所有配方

血魔法

模组链接

魔改炼金矩阵

添加配方
mods.bloodmagic.alchemy_array.recipeBuilder()
    .input(输入物品1)//先放的
    .catalyst(催化剂)//后放的
    .output(输出物品)
    .texture(贴图位置)//可省略
    .register()

删除配方

mods.bloodmagic.alchemy_array.removeByCatalyst(催化剂)
//删除有此催化剂的配方

mods.bloodmagic.alchemy_array.removeByInput(输入物品)
//删除输入物品的配方

mods.bloodmagic.alchemy_array.removeByInputAndCatalyst(输入物品, 催化剂)
//删除指定配方

mods.bloodmagic.alchemy_array.removeByOutput(输出物品)
//删除输出物品的配方

mods.bloodmagic.alchemy_array.removeAll()
//删除所有配方

炼金术桌魔改

//添加合成
mods.bloodmagic.alchemy_table.recipeBuilder()
    .input(输入物品1, 输入物品2,输入物品3,输入物品4)//最少一个,最多4个
    .output(输出物品)
    .ticks(100)//耗时 20tick=一秒
    .minimumTier(2)//需求宝珠等级
    .syphon(500)//生命源质消耗量
    .register()

mods.bloodmagic.alchemy_table.recipeBuilder()
    .input(输入物品1, 输入物品2,输入物品3,输入物品4)//最少一个,最多4个
    .output(输出物品)
    .time(2000)//耗时 20tick=一秒
    .tier(5)//需求宝珠等级
    .drain(25000)//生命源质消耗量
    .register()

删除合成

mods.bloodmagic.alchemy_table.removeByInput(所有输入物品)

mods.bloodmagic.alchemy_table.removeByOutput(输出物品)

mods.bloodmagic.alchemy_table.removeAll()//删除全部配方

血之祭坛魔改

//添加合成
mods.bloodmagic.blood_altar.recipeBuilder()
    .input(输入物品)
    .output(输出物品)
    .minimumTier(0)//需求等级
    .drainRate(5)//无法消耗生命源质时每秒损失的生命源质量
    .syphon(10)//需求生命源质总量
    .consumeRate(5)//每秒的消耗量 
    .register()           //总时间=总消耗量/每秒消耗量

mods.bloodmagic.blood_altar.recipeBuilder()
    .input(输入物品)
    .output(输出物品)
    .tier(3)                      //需求等级
    .drainRate(100)       //无法消耗生命源质时每秒损失的生命源质量
    .syphon(50000)      //需求生命源质总量
    .consumeRate(500)//每秒的消耗量 
    .register()                //总时间=总消耗量/每秒消耗量

删除配方

mods.bloodmagic.blood_altar.removeByInput(输入物品)
mods.bloodmagic.blood_altar.removeByOutput(输出物品)
mods.bloodmagic.blood_altar.removeAll()//删除全部配方

献祭刀魔改

//添加配方
mods.bloodmagic.sacrificial.recipeBuilder()
    .entity('minecraft:enderman')//生物名
    .value(1000)//每次获取的生命源质
    .register()
    
//删除配方
mods.bloodmagic.sacrificial.remove(entity('minecraft:villager'))//生物名
mods.bloodmagic.sacrificial.remove(resource('minecraft:villager'))//生物名
mods.bloodmagic.sacrificial.remove('minecraft:villager')//生物民
mods.bloodmagic.sacrificial.removeAll()//删除全部

浴火熔炉魔改

mods.bloodmagic.tartaric_forge.recipeBuilder()
    .input(输入物品)//最少一个 最多4个
    .output(输出物品)
    .soulDrain(5)//消耗恶魔意志量
    .minimumSouls(10)//需要多少恶魔意志才能合成配方
    .register()

mods.bloodmagic.tartaric_forge.recipeBuilder()
    .input(输入物品)//最少一个 最多4个
    .output(输出物品)
    .drain(200)//消耗恶魔意志量
    .minimumSouls(500)//需要多少恶魔意志才能启动配方
    .register()
    
//删除配方

mods.bloodmagic.tartaric_forge.removeByInput(输入的所有物品)
mods.bloodmagic.tartaric_forge.removeByOutput(输出物品)
mods.bloodmagic.tartaric_forge.removeAll() //删除所有配方