Skip to content

Instantly share code, notes, and snippets.

@johnkraczek
Last active March 30, 2025 17:04
Show Gist options
  • Save johnkraczek/c7186ddeb35be0e638fe064981caa6b0 to your computer and use it in GitHub Desktop.
Save johnkraczek/c7186ddeb35be0e638fe064981caa6b0 to your computer and use it in GitHub Desktop.
Mastermine config for south facing mine
inf = 1e309
---==[ MINE ]==---
-- LOCATION OF THE CENTER OF THE MINE
-- the y value should be set to the height
-- 1 above the surface:
--
-- Y
-- ####### #######
-- ####### #######
mine_entrance = {x = 555, y = 53, z = -859}
c = mine_entrance
-- WHETHER OR NOT TURTLES NEED PAIRS
-- added this because a good number of
-- people were asking for the ability to
-- disale chunky turtles in case they
-- couldn't access the peripherals mod.
-- WARNING: not using chunky turtles will
-- result in narcoleptic turtles!
use_chunky_turtles = true
-- SPACE IN BLOCKS BETWEEN MINESHAFTS
-- too close means less chance of finding
-- ore veins, too far means longer commute
-- times for turtles.
grid_width = 4
-- MAXIMUM MINING AMOUNT PER TRIP
-- PER TURTLE
-- most efficient would be to make this
-- number huge, but turtles may be gone a
-- while (plus harder to recall).
mission_length = 150
-- MAXIMUM BLOCKS A TURTLE MINES IN A
-- SINGLE ORE VEIN
-- veins can contain multiple types of ore
-- and still count as one. also turtles will
-- continue on a vein even when their
-- inventory fills up, so this prevents them
-- losing too many rousources.
vein_max = 64
-- EXTRA FUEL FOR TURTLES TO BRING ALONG,
-- JUST IN CASE
fuel_padding = 30
-- FUEL PER ITEM
-- for coal default is 80. Other fuel sources
-- can be used without changing this number,
-- should be fine.
fuel_per_unit = 80
-- TIME AFTER LAST PING TO DECLARE TURTLE
-- DISCONNECTED
turtle_timeout = 5
-- TIME AFTER LAST PING TO DECLARE POCKET
-- COMPUTER DISCONNECTED
pocket_timeout = 5
-- TIME TO WAIT AFTER SENDING TASK WITH NO
-- RESPONSE TO RESEND
task_timeout = 0.5
-- EVERY BLOCK NAME CONTAINING ANY OF THESE
-- STRINGS WILL NOT BE MINED
-- e.g. "chest" will prevent "minecraft:trapped_chest".
-- ore types should not be put on this list,
-- but if not desired should be removed from
-- <orenames> below.
dig_disallow = {
'computer',
'chest',
'chair',
}
mine_levels = {
-- LEVELS INCLUDED IN THE MINE
-- turtles will pick randomly with weight
-- between each listed level.
--
-- Level chances should sum to 1.0
-- e.g.
--
-- {level = 50, chance = 0.3},
-- {level = 40, chance = 0.2},
-- {level = 12, chance = 0.5},
{level = 50, chance = 0.05},
{level = 44, chance = 0.05},
{level = 38, chance = 0.05},
{level = 32, chance = 0.05},
{level = 26, chance = 0.05},
{level = 20, chance = 0.05},
{level = 14, chance = 0.05},
{level = 8, chance = 0.05},
{level = 2, chance = 0.05},
{level = -4, chance = 0.05},
{level = -10, chance = 0.05},
{level = -16, chance = 0.05},
{level = -22, chance = 0.05},
{level = -28, chance = 0.05},
{level = -34, chance = 0.05},
{level = -40, chance = 0.05},
{level = -46, chance = 0.05},
{level = -52, chance = 0.05},
{level = -58, chance = 0.05},
}
paths = {
-- THE ORDER IN WHICH TURTLES WILL
-- TRAVERSE AXES BETWEEN AREAS
-- recommended not to change this one.
home_to_home_exit = 'zyx',
control_room_to_home_enter = 'yzx',
home_to_waiting_room = 'zyx',
waiting_room_to_mine_exit = 'yzx',
mine_enter_to_strip = 'yxz',
}
locations = {
-- THE VARIUS PLACES THE TURTLES MOVE
-- BETWEEN
-- coordinates are relative to the
-- <mine_center> variable. areas are for
-- altering turtle behavior to prevent
-- collisions and stuff.
-- THE BLOCK TURTLES WILL GO TO BEFORE
-- DECENDING
mine_enter = {x = c.x+0, y = c.y+0, z = c.z+0},
-- THE BLOCK TURTLES WILL COME UP TO
-- FROM THE MINE
-- one block higher by default.
mine_exit = {x = c.x+0, y = c.y+1, z = c.z-1},
-- THE BLOCK TURTLES GO TO IN ORDER
-- TO ACCESS THE CHEST FOR ITEMS
item_drop = {x = c.x-2, y = c.y+1, z = c.z-1, orientation = 'west'},
-- THE BLOCK TURTLES GO TO IN ORDER
-- TO ACCESS THE CHEST FOR FUEL
refuel = {x = c.x-2, y = c.y+1, z = c.z+0, orientation = 'west'},
-- THE AREA ENCOMPASSING TURTLE HOMES
-- where they sleep.
greater_home_area = {
min_x = c.x-2,
max_x = inf,
min_y = c.y+0,
max_y = c.y+1,
min_z = c.z-2,
max_z = c.z+1
},
-- THE ROOM WHERE THE MAGIC HAPPENS
-- turtles can find there way home from
-- here.
control_room_area = {
min_x = c.x-8,
max_x = c.x+16,
min_y = c.y+0,
max_y = c.y+8,
min_z = c.z-8,
max_z = c.z+8
},
-- WHERE TURTLES QUEUE TO BE PAIRED UP
waiting_room_line_area = {
min_x = c.x+0,
max_x = inf,
min_y = c.y+0,
max_y = c.y+0,
min_z = c.z-1,
max_z = c.z+0
},
-- THE AREA ENCOMPASSING BOTH WHERE
-- TURTLES PAIR UP, AND THE PATH THEY
-- TAKE TO THE MINE ENTRANCE
waiting_room_area = {
min_x = c.x+0,
max_x = c.x+2,
min_y = c.y+0,
max_y = c.y+0,
min_z = c.z-1,
max_z = c.z+0
},
-- THE LOOP TURTLES GO IN BETWEEN THEIR
-- HOMES, THE ITEM DROP STATION, AND THE
-- REFUELING STATION
-- routes work like linked lists.
-- keys are current positions, and
-- values are the associated ajecent
-- blocks to move to. this loop should
-- be closed, and it should not be
-- possible for a collision to occur
-- between a turtle following the loop,
-- and a turtle pairing, traveling to
-- the mine entrance, or any other
-- movement.
main_loop_route = {
[c.x+1 .. ',' .. c.y+1 .. ',' .. c.z+1] = {x = c.x+2, y = c.y+1, z = c.z+1},
[c.x+2 .. ',' .. c.y+1 .. ',' .. c.z+1] = {x = c.x+2, y = c.y+1, z = c.z+0},
[c.x+2 .. ',' .. c.y+1 .. ',' .. c.z+0] = {x = c.x+2, y = c.y+1, z = c.z-1},
[c.x+2 .. ',' .. c.y+1 .. ',' .. c.z-1] = {x = c.x+1, y = c.y+1, z = c.z-1},
[c.x+1 .. ',' .. c.y+1 .. ',' .. c.z-1] = {x = c.x+0, y = c.y+1, z = c.z-1},
[c.x+0 .. ',' .. c.y+1 .. ',' .. c.z-1] = {x = c.x-1, y = c.y+1, z = c.z-1},
[c.x-1 .. ',' .. c.y+1 .. ',' .. c.z-1] = {x = c.x-2, y = c.y+1, z = c.z-1},
[c.x-2 .. ',' .. c.y+1 .. ',' .. c.z-1] = {x = c.x-2, y = c.y+1, z = c.z+0},
[c.x-2 .. ',' .. c.y+1 .. ',' .. c.z+0] = {x = c.x-2, y = c.y+1, z = c.z+1},
[c.x-2 .. ',' .. c.y+1 .. ',' .. c.z+1] = {x = c.x-1, y = c.y+1, z = c.z+1},
[c.x-1 .. ',' .. c.y+1 .. ',' .. c.z+1] = {x = c.x+0, y = c.y+1, z = c.z+1},
},
}
mining_turtle_locations = {
homes = {x = c.x+3, y = c.y+0, z = c.z+3, increment = 'east'},
home_area = {
min_x = c.x+3,
max_x = inf,
min_y = c.y+0,
max_y = c.y+0,
min_z = c.z-1,
max_z = c.z-1
},
home_enter = {x = c.x+2, y = c.y+1, z = c.z-1, orientation = 'east'},
home_exit = {x = c.x+2, y = c.y+1, z = c.z+0},
waiting_room = {x = c.x+2, y = c.y+0, z = c.z+0},
waiting_room_to_mine_enter_route = {
[c.x+2 .. ',' .. c.y+0 .. ',' .. c.z+0] = {x = c.x+1, y = c.y+0, z = c.z+0},
[c.x+1 .. ',' .. c.y+0 .. ',' .. c.z+0] = {x = c.x+0, y = c.y+0, z = c.z+0},
}
}
chunky_turtle_locations = {
homes = {x = c.x+3, y = c.y+0, z = c.z-2, increment = 'east'},
home_area = {
min_x = c.x+3,
max_x = inf,
min_y = c.y+0,
max_y = c.y+0,
min_z = c.z-2,
max_z = c.z-2
},
home_enter = {x = c.x+2, y = c.y+1, z = c.z-2, orientation = 'east'},
home_exit = {x = c.x+2, y = c.y+1, z = c.z-1},
waiting_room = {x = c.x+2, y = c.y+0, z = c.z-1},
waiting_room_to_mine_enter_route = {
[c.x+2 .. ',' .. c.y+0 .. ',' .. c.z-1] = {x = c.x+1, y = c.y+0, z = c.z-1},
[c.x+1 .. ',' .. c.y+0 .. ',' .. c.z-1] = {x = c.x+1, y = c.y+0, z = c.z+0},
[c.x+1 .. ',' .. c.y+0 .. ',' .. c.z+0] = {x = c.x+0, y = c.y+0, z = c.z+0},
}
}
gravitynames = {
-- ALL BLOCKS AFFECTED BY GRAVITY
-- if a turtle sees these it will take
-- extra care to make sure they're delt
-- with. works at least a lot percent of
-- the time
['minecraft:gravel'] = true,
['minecraft:sand'] = true,
}
orenames = {
-- ALL THE BLOCKS A TURTLE CONSIDERS ORE
-- a turtle will continue to mine out a
-- vein until it reaches <vein_max> or
-- it stops seeing blocks with names in
-- this list. block names are exact.
['BigReactors:YelloriteOre'] = true,
['bigreactors:oreyellorite'] = true,
['DraconicEvolution:draconiumDust'] = true,
['DraconicEvolution:draconiumOre'] = true,
['Forestry:apatite'] = true,
['Forestry:resources'] = true,
['IC2:blockOreCopper'] = true,
['IC2:blockOreLead'] = true,
['IC2:blockOreTin'] = true,
['IC2:blockOreUran'] = true,
['ic2:resource'] = true,
['ProjRed|Core:projectred.core.part'] = true,
['ProjRed|Exploration:projectred.exploration.ore'] = true,
['TConstruct:SearedBrick'] = true,
['ThermalFoundation:Ore'] = true,
['thermalfoundation:ore'] = true,
['thermalfoundation:ore_fluid'] = true,
['thaumcraft:ore_amber'] = true,
['minecraft:coal'] = true,
['minecraft:coal_ore'] = true,
['minecraft:diamond'] = true,
['minecraft:diamond_ore'] = true,
['minecraft:dye'] = true,
['minecraft:emerald'] = true,
['minecraft:emerald_ore'] = true,
['minecraft:gold_ore'] = true,
['minecraft:iron_ore'] = true,
['minecraft:lapis_ore'] = true,
['minecraft:redstone'] = true,
['minecraft:redstone_ore'] = true,
['galacticraftcore:basic_block_core'] = true,
['mekanism:oreblock'] = true,
['appliedenergistics2:quartz_ore'] = true
}
blocktags = {
-- ALL BLOCKS WITH ONE OF THESE TAGS A TURTLE CONSIDERS ORE
-- most mods categorize ores with the forge:ores tag.
-- this is an easy way to detect all but a few ores,
-- which don't posess this exact tag (for example certus quartzfrom AE2)
['forge:ores'] = true,
-- adds Certus Quartz and Charged Certus Quartz
['forge:ores/certus_quartz'] = true
}
fuelnames = {
-- ITEMS THE TURTLE CONSIDERS FUEL
['minecraft:coal'] = true,
}
---==[ SCREEN ]==---
-- MAXIMUM ZOOM OUT (INVERSE) OF THE
-- MAP SCREEN
monitor_max_zoom_level = 5
-- DEFAULT ZOOM OF THE MAP SCREEN
-- 0 is [1 pixel : 1 block]
default_monitor_zoom_level = 0
-- CENTER OF THE MAP SCREEN
-- probably want the mine center
default_monitor_location = {x = c.x, z = c.z}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment