The Meaning of Life, the Universe, and Everything.
Location:
Friendship, NY
Join Date:
12/26/2010
Posts:
639
Minecraft:
LunariusH
Member Details
No plan survives first contact with the players. Thanks for the insight and advice! You seem like the right person to ask this. Do the structures generated by Ruins count as "structures" for purposes of spawning? IE _ Can you assign specific mob spawns to them?
That's a good question, since witches and guardians are set to spawn at their respective structures. Although I'm not familiar with the Ruins code, if it hooks into vanilla structure generation then one should just need the internal name for the structure, which is likely some form of the filename.
@DoogleSmile: Thanks for the bug report. I've updated my 1.12 collections to reflect the change to the Haunted House, plus a few other issues. I'll have to check and see how far back the "rule29" issue goes, and see if that impacts any of my earlier versions.
* Based on QuarterAnimal's explanation of how the dependency rule uses an air "placeholder," resulting in the weird "air pocket" phenomenon with my attempts at underwater "ruined columns," I used that to replace my tripwire/string placeholders for the sunken haunted ship and for my test underwater dungeon. Instead of placing string, I place an air block with "1,100" dependency. That seems to do the trick.
* So that I don't have to have separate ZIP bundles for versions 1.12 and 1.12.1, my 1.12.* collection has some redundancy in order to accommodate the changed biome folder names. For structures that use QuarterAnimal's block-weighting and other features specific to the 1.12.1 version of Ruins, I'm putting those only in biome folders that use the new circa-1.12.1 folder naming convention (e.g., "deep_ocean" or "smaller_extreme_hills," but not one of the unchanged folders such as "forest" or "plains"). Therefore, if you're using version 1.12 and not 1.12.1, you won't run into those templates, because they'll be in the "wrong" folder name and hence won't load. (At least, that's my intent.) For the "biomesToSpawnIn" field, I'm using both 1.12 and 1.12.1 biome names.
* I've added "command_block" to my list of "unacceptable_target_blocks" for all my templates that rely upon "unacceptable_target_blocks."
I was wondering if anyone had come up with a method of making load bearing bosses for ruins? I'm wanting to essentially have certain ruins be indestructible without having to use indestructible blocks, and then once some condition is reached, the blocks would cease to be indestructible. Is there a clever command block method to handle it? Something similar I'm not thinking of?
You might want to look at AtomicStryker's BattleTowers mod, though I'm not sure what version of MC it's updated for. A while back, I tried to figure out how to work how to spawn the "boss" via command blocks, but I never quite got that to work as intended. It might be more doable now that we have the RUINSTRIGGER tag, but I haven't revisited it. In a way, it does some of what you've described.
I've poked around, google-fu'd for the past few days and haven't found anything on my particular issue so maybe one of you might be able to shed light.
My boyfriend and I play on private server run on his machine and we just included RTG (realistic terrain generation) to our mod order. (Mc 1.10.2 btw) well ruins has always been run pretty much at default config so we were really surprised to see gilly's town houses and such show up in deserts all of a sudden. Turned out riuins were only apawning from the generic folder so upom adding a few from the desert/ocean and forests found those spawning everywhere as well! Question is, how do we fix this. Having sunken ships and sphynx show up in the wrong biomes kind of ruins the exploration aspect. We did manage to lower the spawns by drastically reducing from default (1/2/1) so now we are not coming across ruins every 10 steps, yes literally haha.
Somehow, RTG is not recognizing the biomes restrictions of the ruins files or the folder structure so right now its an all or nothing and that kinda makes me sad. Ive been playing with ruins installed for literally years and want to enjoy it with rtg but I sont know how to make them play nice together. I haven't tried turning off the structure scattering mechanic within rtg as of yet, I was not sure if it messed with ruins or not. It only mentions having to deal with vanilla structures.
Apologies for messy post, typing this out on a dinky little tablet
It's likely this can be fixed by deleting a file called ruins.txt in the config directory.
The ruins.txt file is created on the first run of the modpack, and it populates the list of biomes at that time. This means if you add BiomesOPlenty after this file is created, then Ruins won't see any of the biomes added after the list has been created.
To create a new list of biomes that matches the biomes you have now, delete the file ruins.txt in the configs. Running the modpack again will get Ruins to make a new ruins.txt file, one that reflects the setup as it is now. This step should be done anytime new biomes are added (but can be skipped when adding biomes that are only for custom dimensions).
I hope this fixes the problem, also you can get a new version of my fileset, ones that no longer rely on the generic folder for spawning, so things should be a lot more precisely placed, that is, if the above works in this case.
I might just add in "sand" to the acceptable target blocks for desert structures, so they only spawn on sand, and blacklist grass, as well as doing the opposite for plains structures. This would enforce the desert/plains spawning even if there are no distinctions for biomes.
The Meaning of Life, the Universe, and Everything.
Join Date:
5/25/2017
Posts:
57
Member Details
I'm back again with a new issue.
While I'm no longer concerned with getting Jeracraft's enormous (And potentially gamebreaking) castle to spawn in, I am having some issues that I'm probably able to solve with a newer version of the mod or something. Anyway, in 1.12, none of the folders seem to work except the TP and generic folders. the biomestoSpawnIn tag isn't working either, so now if I want a structure, I need to be ready to find it anywhere. It is worth mentioning that these folders are in the ruins_config folder, not the mods folder. While I would very much like to fix this, the limitation has made me think outside the box enough to develop an idea for a new set of structures, for which I'll upload a zip file some time this week.
It's an illager war camp with 3 kinds of tents:
The first just has a few Vindicators. Simple stuff, bring a shield.
The second has two (or is it3? I forgot) Evokers and a witch, with some vindicators to protect them.
Last, and only for the most foolish, is the largest tent, which has evokers, vindicators, witches, AND an illusioner, who has his own room with a chest full of library loot. I even went into a woodland mansion and stole one of the big Illager-face banners.
While they don't have much in the way of loot, these war camps are a good place to go if you need some emeralds or beds.
Also, Stryker, I love the Hellsing Ultimate banner
For the 1.12 version, all the template folders were moved into the ruins_config folder, this is the active directory for 1.12.
The biome list in each template may have broken due to case-sensitive code being added in mid summer, in which case the fix would be to guess the correct capitalization of the label, or it could be caused by something Mojang did when the biome names were changed. A workaround for it is to put a proxy template in each biome folder that has a chance of spawning everything that biome would normally spawn with the list, basically a manual implementation of the list.
I deleted it and let it repopulate that day I was trying to figure it all out, I also tried changing the scattering to false in the rtg config files. Guess I should mention I'm using biome tweaker to get BOP, Ars magica, Abyssalcraft to spawn biomes together. That was loads of fun to get that config set up correctly but it had amazing results. Anyway, rambling..
It isnt excepting only water/sand/biome restriction in the template config as even one block of the correct item was causing the template to generate in completely the wrong biome, eg sand strictures ahowing up in ice plains at one point, nether and end structures in forests and plains and anywhere else it could find a spot. I wasn't getting anything to show up from their biome specific folder so I had copied templates back into the generic folder (it's pretty much empty otherwise). I'll attempt it all again, maybe I missed a step somewhere along the way, who knows, I'm simply hoping someone pops in that's using rtg and ruims successfully together because the vistas that now spawn are simply a joy to explore. And I need my ruins to complete that.
While I'm no longer concerned with getting Jeracraft's enormous (And potentially gamebreaking) castle to spawn in, I am having some issues that I'm probably able to solve with a newer version of the mod or something. Anyway, in 1.12, none of the folders seem to work except the TP and generic folders. the biomestoSpawnIn tag isn't working either, so now if I want a structure, I need to be ready to find it anywhere.
Folder logic seems to have changed in Minecraft between versions 1.12 and 1.12.1. However, I'm not QUITE sure if this addresses your problem, since you say that "none" of the folders are working.
I've tried to adapt my own template bundle to account for this by moving some of my templates over into biome folders whose names are NOT affected by the change (so they'll be discovered in either version), or else by creating redundant folders (covering both name possibilities). Similarly, I've updated biomesToSpawnIn to use BOTH versions of the biome names, where applicable.
So, what used to be "Extreme Hills" is now "extreme_hills," and what used to be "Extreme Hills Edge" is now "smaller_extreme_hills," for example. Folder names have gone from being capitalized to all lower case. There are no longer any spaces in "vanilla" biome names (or in the appropriate folders for Ruins). Some biome name variants have been radically altered.
A few biomes with one-word names are unchanged (save for switching to lowercase -- but the system seems to no longer be case-sensitive), so "ocean," "plains," "forest," "river," "jungle," "desert," and "savanna" (for example) are unchanged. On the other hand, "Beach" has become "beaches."
In that case, if you've got templates sitting in the "forest" folder, it SHOULD still be showing up. If you had anything in "Extreme Hills," you'll need to rename the folder to "extreme_hills" for it to be recognized by terrain gen anymore. Updating "biomesToSpawnIn" is potentially more involved, but for maximum compatibility there's no harm in leaving in the "old" biome names, and simply adding in any new ones that are applicable. (That's what I did, anyway.)
We've all been manually patching the biomestospawnin code break for months, since mid-summer, I have to ask has anyone mentioned the broken code to AtomicStryker, and is it due to the Mojang changes in biomes or case-sensitivity in the code? Since it doesn't affect how the Generic templates spawn, it might not be immediately noticeable that this particular feature is broken.
There was a pull request fixing biome names with underscore characters in them not working, if that's what you're referring to. The latest versions should not have the issue.
Was thinking about remaking the first airship I made while moderating a server a few years ago, tell me what you think. I've already made a few new ones for my last structure set released a few days ago, and they turned out very well, and it might even become my avatar.
There is a file called "templaterules.txt" that comes with Ruins, i'm not sure of the filepath but I'm looking at the file on my desktop right now, so I'll just put it into a spoiler:
# BASICS
# This file is designed to be copied into the mods/resources/ruins folder and be
# edited to create a new template. It is functional as-is; you can use it as
# a placeholder for future templates after renaming it.
#
# Templates have a .tml extension and the mod will attempt to load any and
# all files with that extension if they reside in the <minecraft root>/
# mods/resources/ruins folder. Whether it does so successfully or not can be
# checked in the log file (<minecraft root>/mods/ruins_log.txt). The mod will also
# load any templates found in the biome folders within
# <minecraft root>/mods/resources/ruins.
#
# These template files are a simple text file; simply open them in your
# favorite text editor to make changes or create new ones.
#
# There are three sections to each template file:
# VARIABLES define how the template is generated.
# BLOCK RULES define how the layers are generated.
# LAYERS tells the mod how to place blocks using BLOCK RULES.
#
# You can specify a comment by placing a "#" character at the beginning of the
# line. You technically /don't/ have to do this, since the mod only looks for
# particular line starts when loading a template, but I consider it good form
# because it increases readability and you prevent any errant line reads.
# VARIABLES
#
# biomesToSpawnIn=<name1>,<name2>,<name3>...
# Adds the Template being loaded (regardless which folder it is in) to a Ruins Biome
# found in the Minecraft Biomelist so that <namex> matches the Biome's name.
# If you don't know a Biome's name, find it's folder. The foldername equals the
# Biome name. Case insensitive. A Template cannot be added to a Biome more than once.
# The Template is still added to the corresponding folder it was loaded from (if not already in).
# example: biomesToSpawnIn=forest,foresthills,taiga
# Optional. You can use the folders as before, or use this to save space, or both.
#
# weight=<weight>
# Weight is how much weight this template has during random generation. When
# the mod asks for a template to place it adds up the weights of all templates
# that are currently loaded and generates a random number based off of that
# total, then checks to see what template to load. If the mod loads five
# templates with weights 1, 5, 5, 10 and 10, the template with weight 10 has a
# 10 in 31 chance of being generated, while the template with weight 1 has a 1
# in 31 chance of being generated. A template only has weight in its biome.
# Defaults to 1.
#
# embed_into_distance=<number of layers>
# Specifies how many layers to embed into the target blocks. This is useful
# for creating basements or dungeons.
# Defaults to 1.
#
# acceptable_target_blocks=<blockID>,<blockID>,<etc...>
# This is a comma-delimited list of block IDs that this template can spawn on.
# Only the top layer of blocks where the template will spawn are checked.
# Optional line. Defaults to accept any block.
#
# unacceptable_target_blocks=<blockID>,<blockID>,<etc...>
# This is a comma-delimited list of block IDs that this template can NOT spawn on.
# Only the top layer of blocks where the template will spawn are checked.
# Optional line. Defaults to accept any block.
#
# dimensions=<height>,<width>,<length>
# Defines how big this template is. Height is the number n
# of layers that are used, not the height that sticks out n
# above the ground. Width is the north-south width, and www*eee
# length is the east-west width. For reference, north in s
# the template is the top of the text file. s
# All default to 0.
#
# allowable_overhang=<overhang>
# Specifies the allowed number of blocks in the potential build site that do not have
# a surface within a reasonable distance, leaving the template "hanging" over an edge
# Defaults to 0.
#
# max_leveling=<leveling>
# Specifies the maximum surface noise / height difference, within the build site,
# that will be accepted when considering a potential build location.
# The site will then be levelled prior to spawning the template.
# If there is overhang allowed, also specifies how much "support" blocks are put
# under the template when building it overlapping a surface edge.
# Defaults to 2.
#
# leveling_buffer=<lbuffer>
# The distance around the build site that will also be levelled. Values higher
# than 5 will use 5, since the world would otherwise be mangled pretty badly.
# Defaults to 0.
# Ruins 12.8 introduces a setting of -1, which will prevent any(!) site leveling
#
# preserve_water=<yes/no>
# If set to 1 all site checking rules will treat water as air so that the ruin
# can be generated beneath/in water. Any rules that replace a block with air
# will respect water and not replace it. If set to 0, water is treated like
# any other block.
# Defaults to 0/no.
#
# preserve_lava=<yes/no>
# If set to 1 all site checking rules will treat lava as air so that the ruin
# can be generated beneath/in lava. Any rules that replace a block with air
# will respect lava and not replace it. If set to 0, lava is treated like
# any other block.
# Defaults to 0/no.
#
# preserve_plants=<yes/no>
# If set to 1 all site checking rules will treat trees, leaves, and cactus as
# air so that the ruin can be generated in and around them. Any rules that
# replace a block with air will respect trees, leaves, and cactus and not
# replace them. If set to 0, trees, leaves, and cactus are treated like
# any other blocks. Cactus adjacent to other blocks will break down, so you
# may not actually see cactus in your structure.
# Defaults to 0/no
#
# random_height_offset=<min>,<max>
# Specifies block range in which the Ruin will be randomly shifted up or down
# on an established valid location before actually being built.
# Defaults to 0,0/no random shifting
#
# NOTE: When using preserve_water and preserve_lava it is advised that you
# restrict the cut_in_buffer as much as possible, preferably to 0. If it is
# more than 0 you may get some unexpected fluid dynamics if the structure
# does not spawn completely in water/lava.
#
# Ruins 13.8 adds optional variable "uniqueMinDistance" which overrides global templateInstancesMinDistance
# uniqueMinDistance=1500
# defaults to 0. values of 0 are handled as if no value was specified at all.
#
# Ruins 13.9 adds optional variable "preventRotation" which keeps a template in the specified direction
# preventRotation=1
# defaults to 0. values of 0 are handled as if no value was specified at all.
#
# Ruins 14.3 adds the optional repeatable variable "adjoining_template" which lets you spawn adjacent templates
# these will not be checked for minimal distances against ANY other ruins, make sure your spacings are big enough
# these will also not be checked for circular dependencies, you build an infinite loop, you wait it out
# these will be checked against the rules the template itself contains
# Ruins will use its spawning algorithm to determine a fitting y coordinate to the xz you provide
# adjoining templates will be randomly rotated, you can disable this in their templates if you want
# syntax: adjoining_template=<template>;<relativeX>;<allowedYdifference>;<relativeZ>[;<spawnchance>]
# <template> is the full filepath relative to the resources/ruins folder, so, working like /testruin
# <relativeX> and <relativeZ> are the relative coords from the host x,z spawnpoint to the adjoining x,z
# <allowedYdifference> states how much the computed adjoining template height may absolutely differ before aborting
# <spawnchance> is optional and does what the name implies, [0-100] values allowed
#
# Example: adjoining_template=generic/MoaiHead;-25;10;25;33
#
# BLOCK RULES
# Each rule must be formatted carefully:
# rule<number>=<condition>,<chance to appear>,<list of blocks>
#
# rule<number>
# The mod does not care what you call these and will number the rules in the
# order they are loaded (sequentially from 1), so long as the line start with
# "rule". I suggest using "rule#" as a mnemonic, such as "rule1", "rule2",
# "rule12", etc... Once the templates are loaded, the first rule in the list
# becomes rule #1 for the purposes of building a layer, the second becomes rule
# #2, and so on.
#
# The mod uses a special rule, 0, which defines the Air block with a 100% spawn
# rate and no conditional. You can use this rule in the layers to "blank out"
# certain areas (providing space for mobs, for instance).
#
# <condition>
# A conditional to the block being placed, aside from randomness.
# 0 = Normal, spawns first
# ±1 = Checks block under, spawns delayed
# ±2 = Checks block adjacent, spawns delayed
# ±3 = Checks block above, spawns last
# 7 = Spawns last
# Where the negative cases for 1,2,3 denote NOT. In other words, 2 means the block will only spawn
# if there is a block next to it, while -2 will NOT spawn if there are any blocks next to it.
#
# Adjacent in this case is not diagonal, only along the cardinal directions.
#
# Adjacent blocks are processed after 0 and 1 conditionals have been placed,
# and "under blocks" are processed after all other blocks have been placed.
# Please note that these blocks are still processed in an order dependent on
# the rotation of the site. For a normal, north-facing site, the block rules
# are processed for each line from the left and from the bottom template to the
# top.
#
# DO NOT CHAIN CONDITIONS. That results in undefined behaviour.
#
# <chance to appear>
# The chance that this block will appear, out of 100, depending on whether the
# condition above is met.
#
# <list of blocks>
# A comma-delimited set of minecraft blockIDs. This will determine what block
# will actually spawn in the location. Each blockID is given the same weight,
# so you can skew the odds of a certain blockID appearing by adding it multiple
# times. You can specify block metadata by adding a "-<metadata>" after the
# blockID. For instance, to place a cobblestone stairs block ascending to the
# east, use stone_stairs-3. To place a wood half-block (slab), use stone_slab-2.
#
# You can find a list of blockIDs and commonly-used metadata via Google.
# There is also one included, idmappings.txt
#
#
# Example 1: rule1=0,100,0,cobblestone,mossy_cobblestone
# This spawns either air, cobblestone, or a mossy cobblestone 100% of the time.
#
# Example 2: rule1=1,50,mossy_cobblestone
# This spawns a mossy cobblestone 50% of the time but only if another block
# is underneath it.
#
# Example 3: rule1=2,100,stone_slab-2,planks
# This spawns either a stone slab or a plank block, but only if there is an
# adjacent block on the same level.
#
# Example 4: rule1=0,100,torch-5
# This spawns a torch standing on the ground.
#
# Example 5: rule1=0,25,MediumChest
# This spawns a Medium Chest (see above) 25% of the time.
#
# Example 6: rule1=0,50,MobSpawner:Villager
# This spawns a Mob Spawner with Entity Id "Villager" 50% of the time
# Entity Id's are case sensitive! Mod added Mobs are allowed. Use a tool like Simply Hax to get correct Entity Id's
#
# Ruins 9.0 exposes minecraft ChestGenHook for your meddling. Usage:
#
# Example 7: rule1=0,100,ChestGenHook:chests/simple_dungeon:10
# This spawns a chest and tells the Minecraft generator to fill it with "10" itemstacks of the "chests/simple_dungeon" loot preset.
# This might include extremely powerful items added by mods. Note: The algorithm spreads out the itemstacks, it might be more than 10
# items in this particular case, e.g. 5 pieces of bread count as 1 itemstack, yet will be spread out over 5 slots.
#
# see http://minecraft.gamepedia.com/Loot_table#List_of_loot_tables for possible loot tables (as of MC 1.9)
#
# As of 10.6, all chest rules can also append a metadata/rotation int similar to a chest block ID
# example: rule1=0,100,ChestGenHook:chests/simple_dungeon:10-5
# for a chest filled with dungeon chest loot and rotated to meta 5.
#
#
# Ruins 10.3 adds Command Block Support. Usage:
# Example 8: rule1=0,100,CommandBlock:command:sender
# command being the Command string to be executed and sender being the Command sender (a player name, Rcon...)
# you can provide several alternative command blocks seperated by commata, however you may not mix command blocks and other blocks in one rule
#
# Ruins 12.1 adds Standing Signs. Usage:
# Example 9: rule1=0,100,StandingSign:a|b|c|d-4
# a,b,c,d are the 4 Strings/lines you can write on a sign. The metadata/rotation of the sign is affixed as usual.
#
# Ruins 12.2 adds IInventory block support. Usage: IInventory;<blockName>;<itemList>-<blockrotation>
# where <blockName> is the registry name of the Block that sports an inventory
# where <itemList> is a list of elements seperated by '+', each element is a block or item registry name
# optionally followed by #stacksize OR #stacksize#metadata OR #stacksize#metadata#inventoryslot
# Example 10: rule1=0,100,IInventory;chest;red_flower+arrow#10+wool#3#15-5
# this spawns a chest rotated to 5, which will contain a single red flower, 10 arrows, and 3 wool of color red (meta 15)
# Example 11: rule1=0,100,IInventory;dispenser;arrow#10+snowball#20+egg#3-1
# this spawns a dispenser rotated to 1, with 10 arrows 20 snowballs and 3 eggs
# you may use this for items added by mods. names not found in the registry will simply be skipped over.
# you may also use this for container blocks added by mods. invalid anythings should be skipped.
# the Ruins Parser will do this for you when you parse an IInventory block. Empty chests get hooked with dungeon loot
# automatically. If you want to prevent this, either edit the template afterwards or place some dirt in the chest.
# if you specify the same slot index multiple times, only the first itemstack gets put in
#
# Ruins 15.0 adds ChestGenHook (see above) as valid <itemList> entry for IInventory rules
# Example: rule1=0,100,IInventory;dispenser;ChestGenHook:dungeonChest:5-1
#
# Ruins 14.3 adds the -addbonemeal flag to use on IGrowable blocks such as saplings or most plants
# simply append -addbonemeal to a block which is an IGrowable (and only those!)
# note this overrides certain checks done before hand application of bonemeal, such as darkness checks for shrooms
# also note /undo does NOT take growing things into account when cleaning up your shenanigans
# below example is for oak and dark oak saplings
# Example 12: rule1=0,100,0,sapling-addbonemeal,sapling-5-addbonemeal
#
# Ruins 14.9 adds support for item NBT data. the json nbt string replaces 'stacksize' in the format, as nbt capable items are never stackable
# Example 13: rule1=0,100,IInventory;minecraft:chest;minecraft:diamond_sword#{RepairCost:2,display:{Name:"Choppa"}}#0#0
#
# Ruins 15.0 adds support for tile entity NBT data. This is best achieved by adding the blockname to the global "teblock" variable in ruins.txt
# Usage: teBlock;<blockName>;<nbttag json>-<blockrotation>
# Example: rule1=0,100,teBlock;minecraft:trapped_chest;{x:-156,y:65,z:72,Items:[0:{Slot:12b,id:5s,Count:1b,Damage:0s},1:{Slot:13b,id:24s,Count:1b,Damage:1s}],id:"Chest"}-2
# Note: "Chain" and "Repeat" Command Blocks are classified as such by default
#
# LAYERS
# Each layer is a comma-delimited list of rules, one for each block. There
# must be as many layers as the height, and each layer must have "layer" before
# the rules and end with "endlayer". There are as many rows as the length, and
# as many rules as the width. If you want the block blanked out use 0, which
# represents the Air-block rule.
This list is only needed for templates expected to be put in the "Generic" folder
In March 2015, Sinhika suggested clouds from Natura be put in the default list
This is my most complete list for Generic templates:
Templates can be moved out of generic into specific biome folders, if there is
enough content to ensure filling the world with a good variety of structures.
Extra spaces at the end of lines in the Layers can break a template:
Grab the text with the mouse to highlight spaces at the end of lines.
"Here's a quick tip when a ruins file is "broken" but it looks perfect in the code:
layer
3,3,3,3
3,3,3,3
3,3,3,3
endlayer
select the above block of 3's to reveal the extra spaces at the end of each line. I've had this happen
to me and it took a while to find it, let alone realize that such a seemingly minor detail could break the code."
This can only happen when handbuilding the template,
like if a cat walks across the keyboard (very common in some places)
-------
Gillymoth Tip #2681 (page 134)
"if you click on blocks with a stick, it says in chat the blocknames and metadata"
This is a stock feature of Ruins Mod, and is useful in getting block-names
to use with the /fill command, and for manually editing template
-------
Gillymoth Tip #2659 (page 133)
"This keeps blocks the same during the building phase where in the data the rule is specified:
rule1=0,100,preserveBlock
but the above happens after leveling the ground (filling in) for building, which can be turned off with a -1 value here:
leveling_buffer=-1
This is useful for exposing the foundations of buildings on the side of a hill, but still have them flat on plains."
-------
Gillymoth Tip#2931 (page 146)
"you could do it the same way as I do exposed foundations for my buildings,
tree roots would be handled exactly the same, just use these three together:
embed_into_distance="how deep you want the roots"
max_leveling="how deep you want the roots" (same as number for embed_into_distance)
leveling_buffer=-1
setting the leveling buffer to -1 keeps it from filing ANY land (above the first layer),
and when used in conjunction with embed into distance, you get exposed foundations, and it still places on rough land.
After finishing the structure design, build a water-tight tub around the roots and fill it with water,
the water spread will make filling the area easy and you can change the water rule to "preserveBlock" in the file itself,
(provided the structure wasn't actually supposed to be a lake)."
I discovered that these settings for these three rules are optimal,
and should be used in most cases for new templates
-------
Gillymoth Tip #2821 (page 132)
Use water-spread to quickly fill in areas for making the preserveBlock rule:
"someone mentioned (wanting the option for) the templateparser to use preserveBlock instead of air (as a default setting),
because their template was too massive to do it by hand.
Anyway, I used water spread to fill in the area I wanted to use for preserveBlock,
and just replaced the water-rule with preserveBlock."
*Picture titled "DomeInTub" with my spawn dome inside, the area around it filled with water
---
This tip is still useful in current versions, just use it to fill up the much smaller inside "air" areas by hand,
before using "/fill replace" to turn air into the preserveBlock material, and then change the water back to air.
-------
Gillymoth Tip #3054 (page 152)
"You don't have to make a solid baseplate, just a rectangle that defines the outer edge.
A filled baseplate would still be useful if you wanted it to hold in water.
I like to use water to fill in my "preserveBlock" rule, in combination with
orange wool for the feathering to blend it into the land."
(in 1.12+, orange wool is too bright to look at in large areas)
---
Gillymoth Tip #3123 (page 156)
Build a ring of wool under your structure and type "/parseruin filenamegoeshere" and break a wool under the building.
Then test spawn in an open space with "/testruin samefilenameasbefore" and make adjustments as needed,
using placeholder blocks for "preserveBlock", etc
The above is from my 1.8 wheat field template design"
This makes farms that conform to the surface with a single set of commands
-------
The above tips are shown to speed up the process, so others can benefit from
things learned from the experience of designing hundreds of completed templates.
-------
Important Tip:
Included in the Ruins installation is the "template_rules" file.
It contains all the information needed to assemble all kinds of fancy builds.
Templates under 20-30K generate nearly instantly, and I suggest not going over a 50K file size,
any larger and it takes an increasingly noticeable amount of time to generate that structure.
Minecraft generation can much more easily handle vertical structures that generate in fewer chunks,
than ones that spread over a wide area.
20-30 blocks sideways (under two chunks) is a good size to build in for fast generation,
and I suggest 15-20 blocks across as larger foundations are more difficult to keep a build grounded
on any random surface.
Templates with dimensions in odd numbers are easier to align into multi-structure builds,
as they align at the center of a block.
Templates with Even numbers for dimensions can be used for a little extra randomness.
Another lag-busting tip is to try to void overusing blocks or entities that minecraft does extra checks on.
Several common detailing blocks have entities attached to them to store extra data, the minecraft wiki
has a complete list. Using them in builds is fine, just be aware of how much lag they produce in
massive quantities.
Since Ruins is usually played in heavily modded worlds, expect the other mods to have already used up most
or all of the leeway in this area. It's best to tread as lightly as possible when using such blocks.
Also expect that the player is going to want to place down a lot of things like chests and furnaces where
they decide to make a base, and they commonly choose these builds to do so.
Layers under the floor level of a build are important in blending a structure into the ground.
embed_into_distance= (place number of layers under surface here, and negative numbers for flying builds)
Foundations should be at least 4 blocks deep for anything with a small footprint around 8x8,
and 7-8 blocks deep for buildings around 20x20
I also suggest breaking up anything too much larger into parts that can generate separately.
This opens up using the parts as a construction set, that can be assembled in many different ways.
-------------------------------
Blending the Structure in
-------------------------------
max_leveling=
embed_into_distance=
I suggest setting max_leveling to the same number to match embed_into_distance, at most.
max_leveling determines exactly how hilly a surfce can be to accept a build location,
so a higher number increases the chances of spawning, but if it exceeds the depth of
the foundation, the outer edges will appear to be floating.
leveling_buffer=-1
In most cases, the leveling feature of Ruins will tend to break the landscape.
Setting it to -1 turns it off, as preserveBlock is a better way to ensure
a good fit with the land.
Use in conjunction with the above two settings, to optimize performance.
Have a "master-template" on your desktop, use it to store commonly used iists and rules
Most importantly, use it to add the finishing touches on templates, as outlined by
the above conventions
the unacceptable_target_blocks list is such a standard, and is most useful for
new players who will be placing everything in generic as a starting place
In the continuous process of developing structures, my "templateparser" folder is
filled with tons of bits and pieces of templates, experiments, and temp files.
The folder houses my workspace and as such gets very messy, so I use the 'Gilly' folder
as my place for released support files. I've also kept a naming convention for all
of my released templates. Every file starts with "Gilly" to prevent duplicate filenames
if the content ends up getting merged with any other content.
I suggest that new players who decide to make content consider choosing a unique marker
in their filenames for this exact reason, and I extend this suggestion to content makers
who make things for other mods/systems as well.
# Ruins 13.8 adds optional variable "uniqueMinDistance" which overrides global templateInstancesMinDistance
# uniqueMinDistance=1500
# defaults to 0. values of 0 are handled as if no value was specified at all.
Does this apply to all templates or just the template in which this parameter is in?
i.e.my tower will only spawn again if it is outside that distance or my tower will not spawn if it is not outside that distance from all other templates?
Oh, and I would love to have your airships spawn in my worlds if you post the templates.
This is what I've been working on. It's a rather large pyramid that I have partially buried in the sand (much like the Sphinx was when it was found). I'm just having problems having it spawn on top of itself. There are too many characters to post all of the layers.
No plan survives first contact with the players. Thanks for the insight and advice! You seem like the right person to ask this. Do the structures generated by Ruins count as "structures" for purposes of spawning? IE _ Can you assign specific mob spawns to them?
That's a good question, since witches and guardians are set to spawn at their respective structures. Although I'm not familiar with the Ruins code, if it hooks into vanilla structure generation then one should just need the internal name for the structure, which is likely some form of the filename.
Gillymoth Structures for Ruins <<< Folder containing my Structure-sets for Ruins mod.
@DoogleSmile: Thanks for the bug report. I've updated my 1.12 collections to reflect the change to the Haunted House, plus a few other issues. I'll have to check and see how far back the "rule29" issue goes, and see if that impacts any of my earlier versions.
* Based on QuarterAnimal's explanation of how the dependency rule uses an air "placeholder," resulting in the weird "air pocket" phenomenon with my attempts at underwater "ruined columns," I used that to replace my tripwire/string placeholders for the sunken haunted ship and for my test underwater dungeon. Instead of placing string, I place an air block with "1,100" dependency. That seems to do the trick.
* So that I don't have to have separate ZIP bundles for versions 1.12 and 1.12.1, my 1.12.* collection has some redundancy in order to accommodate the changed biome folder names. For structures that use QuarterAnimal's block-weighting and other features specific to the 1.12.1 version of Ruins, I'm putting those only in biome folders that use the new circa-1.12.1 folder naming convention (e.g., "deep_ocean" or "smaller_extreme_hills," but not one of the unchanged folders such as "forest" or "plains"). Therefore, if you're using version 1.12 and not 1.12.1, you won't run into those templates, because they'll be in the "wrong" folder name and hence won't load. (At least, that's my intent.) For the "biomesToSpawnIn" field, I'm using both 1.12 and 1.12.1 biome names.
* I've added "command_block" to my list of "unacceptable_target_blocks" for all my templates that rely upon "unacceptable_target_blocks."
--- Jordan's & Kujaku10's UNOFFICIAL Custom Templates:
Greywolf's Minecraft Ruins (MC versions 1.7.10-1.12.2; requires AtomicStryker's "Ruins" mod)
Latest Updates: v1.7 (May 2018) * v1.8 (Jun 2016) * v1.9 (Sep 2016) * v1.10 (Jan 2017) * v1.11 (Apr 2018) * v1.12.* (Dec 2018)
No, Ruins is doing something completely different than mc structures.
You might want to look at AtomicStryker's BattleTowers mod, though I'm not sure what version of MC it's updated for. A while back, I tried to figure out how to work how to spawn the "boss" via command blocks, but I never quite got that to work as intended. It might be more doable now that we have the RUINSTRIGGER tag, but I haven't revisited it. In a way, it does some of what you've described.
--- Jordan's & Kujaku10's UNOFFICIAL Custom Templates:
Greywolf's Minecraft Ruins (MC versions 1.7.10-1.12.2; requires AtomicStryker's "Ruins" mod)
Latest Updates: v1.7 (May 2018) * v1.8 (Jun 2016) * v1.9 (Sep 2016) * v1.10 (Jan 2017) * v1.11 (Apr 2018) * v1.12.* (Dec 2018)
I've poked around, google-fu'd for the past few days and haven't found anything on my particular issue so maybe one of you might be able to shed light.
My boyfriend and I play on private server run on his machine and we just included RTG (realistic terrain generation) to our mod order. (Mc 1.10.2 btw) well ruins has always been run pretty much at default config so we were really surprised to see gilly's town houses and such show up in deserts all of a sudden. Turned out riuins were only apawning from the generic folder so upom adding a few from the desert/ocean and forests found those spawning everywhere as well! Question is, how do we fix this. Having sunken ships and sphynx show up in the wrong biomes kind of ruins the exploration aspect. We did manage to lower the spawns by drastically reducing from default (1/2/1) so now we are not coming across ruins every 10 steps, yes literally haha.
Somehow, RTG is not recognizing the biomes restrictions of the ruins files or the folder structure so right now its an all or nothing and that kinda makes me sad. Ive been playing with ruins installed for literally years and want to enjoy it with rtg but I sont know how to make them play nice together. I haven't tried turning off the structure scattering mechanic within rtg as of yet, I was not sure if it messed with ruins or not. It only mentions having to deal with vanilla structures.
Apologies for messy post, typing this out on a dinky little tablet
It's likely this can be fixed by deleting a file called ruins.txt in the config directory.
The ruins.txt file is created on the first run of the modpack, and it populates the list of biomes at that time. This means if you add BiomesOPlenty after this file is created, then Ruins won't see any of the biomes added after the list has been created.
To create a new list of biomes that matches the biomes you have now, delete the file ruins.txt in the configs. Running the modpack again will get Ruins to make a new ruins.txt file, one that reflects the setup as it is now. This step should be done anytime new biomes are added (but can be skipped when adding biomes that are only for custom dimensions).
I hope this fixes the problem, also you can get a new version of my fileset, ones that no longer rely on the generic folder for spawning, so things should be a lot more precisely placed, that is, if the above works in this case.
I might just add in "sand" to the acceptable target blocks for desert structures, so they only spawn on sand, and blacklist grass, as well as doing the opposite for plains structures. This would enforce the desert/plains spawning even if there are no distinctions for biomes.
Gillymoth Structures for Ruins <<< Folder containing my Structure-sets for Ruins mod.
I'm back again with a new issue.
While I'm no longer concerned with getting Jeracraft's enormous (And potentially gamebreaking) castle to spawn in, I am having some issues that I'm probably able to solve with a newer version of the mod or something. Anyway, in 1.12, none of the folders seem to work except the TP and generic folders. the biomestoSpawnIn tag isn't working either, so now if I want a structure, I need to be ready to find it anywhere. It is worth mentioning that these folders are in the ruins_config folder, not the mods folder. While I would very much like to fix this, the limitation has made me think outside the box enough to develop an idea for a new set of structures, for which I'll upload a zip file some time this week.
It's an illager war camp with 3 kinds of tents:
The first just has a few Vindicators. Simple stuff, bring a shield.
The second has two (or is it3? I forgot) Evokers and a witch, with some vindicators to protect them.
Last, and only for the most foolish, is the largest tent, which has evokers, vindicators, witches, AND an illusioner, who has his own room with a chest full of library loot. I even went into a woodland mansion and stole one of the big Illager-face banners.
While they don't have much in the way of loot, these war camps are a good place to go if you need some emeralds or beds.
Also, Stryker, I love the Hellsing Ultimate banner
For the 1.12 version, all the template folders were moved into the ruins_config folder, this is the active directory for 1.12.
The biome list in each template may have broken due to case-sensitive code being added in mid summer, in which case the fix would be to guess the correct capitalization of the label, or it could be caused by something Mojang did when the biome names were changed. A workaround for it is to put a proxy template in each biome folder that has a chance of spawning everything that biome would normally spawn with the list, basically a manual implementation of the list.
Gillymoth Structures for Ruins <<< Folder containing my Structure-sets for Ruins mod.
I deleted it and let it repopulate that day I was trying to figure it all out, I also tried changing the scattering to false in the rtg config files. Guess I should mention I'm using biome tweaker to get BOP, Ars magica, Abyssalcraft to spawn biomes together. That was loads of fun to get that config set up correctly but it had amazing results. Anyway, rambling..
It isnt excepting only water/sand/biome restriction in the template config as even one block of the correct item was causing the template to generate in completely the wrong biome, eg sand strictures ahowing up in ice plains at one point, nether and end structures in forests and plains and anywhere else it could find a spot. I wasn't getting anything to show up from their biome specific folder so I had copied templates back into the generic folder (it's pretty much empty otherwise). I'll attempt it all again, maybe I missed a step somewhere along the way, who knows, I'm simply hoping someone pops in that's using rtg and ruims successfully together because the vistas that now spawn are simply a joy to explore. And I need my ruins to complete that.
When you press F3 what shows up in the line that says "biome" when you fly around?
Specifically which of the several biome mods that you have combined is overwriting the biome field that is passed to Ruins?
Gillymoth Structures for Ruins <<< Folder containing my Structure-sets for Ruins mod.
Folder logic seems to have changed in Minecraft between versions 1.12 and 1.12.1. However, I'm not QUITE sure if this addresses your problem, since you say that "none" of the folders are working.
I've tried to adapt my own template bundle to account for this by moving some of my templates over into biome folders whose names are NOT affected by the change (so they'll be discovered in either version), or else by creating redundant folders (covering both name possibilities). Similarly, I've updated biomesToSpawnIn to use BOTH versions of the biome names, where applicable.
So, what used to be "Extreme Hills" is now "extreme_hills," and what used to be "Extreme Hills Edge" is now "smaller_extreme_hills," for example. Folder names have gone from being capitalized to all lower case. There are no longer any spaces in "vanilla" biome names (or in the appropriate folders for Ruins). Some biome name variants have been radically altered.
A few biomes with one-word names are unchanged (save for switching to lowercase -- but the system seems to no longer be case-sensitive), so "ocean," "plains," "forest," "river," "jungle," "desert," and "savanna" (for example) are unchanged. On the other hand, "Beach" has become "beaches."
In that case, if you've got templates sitting in the "forest" folder, it SHOULD still be showing up. If you had anything in "Extreme Hills," you'll need to rename the folder to "extreme_hills" for it to be recognized by terrain gen anymore. Updating "biomesToSpawnIn" is potentially more involved, but for maximum compatibility there's no harm in leaving in the "old" biome names, and simply adding in any new ones that are applicable. (That's what I did, anyway.)
--- Jordan's & Kujaku10's UNOFFICIAL Custom Templates:
Greywolf's Minecraft Ruins (MC versions 1.7.10-1.12.2; requires AtomicStryker's "Ruins" mod)
Latest Updates: v1.7 (May 2018) * v1.8 (Jun 2016) * v1.9 (Sep 2016) * v1.10 (Jan 2017) * v1.11 (Apr 2018) * v1.12.* (Dec 2018)
My newest content update with everything since my early September update, just a few new structures, and a few renovations of my earlier builds.
Ruinset Gilly Oct 14 update
We've all been manually patching the biomestospawnin code break for months, since mid-summer, I have to ask has anyone mentioned the broken code to AtomicStryker, and is it due to the Mojang changes in biomes or case-sensitivity in the code? Since it doesn't affect how the Generic templates spawn, it might not be immediately noticeable that this particular feature is broken.
Gillymoth Structures for Ruins <<< Folder containing my Structure-sets for Ruins mod.
There was a pull request fixing biome names with underscore characters in them not working, if that's what you're referring to. The latest versions should not have the issue.
Was thinking about remaking the first airship I made while moderating a server a few years ago, tell me what you think. I've already made a few new ones for my last structure set released a few days ago, and they turned out very well, and it might even become my avatar.
Gillymoth Structures for Ruins <<< Folder containing my Structure-sets for Ruins mod.
is there a breakdown of what all the different parameters mean in a template file? I'm not finding anything on a basic search for it.
There is a file called "templaterules.txt" that comes with Ruins, i'm not sure of the filepath but I'm looking at the file on my desktop right now, so I'll just put it into a spoiler:
# BASICS
# This file is designed to be copied into the mods/resources/ruins folder and be
# edited to create a new template. It is functional as-is; you can use it as
# a placeholder for future templates after renaming it.
#
# Templates have a .tml extension and the mod will attempt to load any and
# all files with that extension if they reside in the <minecraft root>/
# mods/resources/ruins folder. Whether it does so successfully or not can be
# checked in the log file (<minecraft root>/mods/ruins_log.txt). The mod will also
# load any templates found in the biome folders within
# <minecraft root>/mods/resources/ruins.
#
# These template files are a simple text file; simply open them in your
# favorite text editor to make changes or create new ones.
#
# There are three sections to each template file:
# VARIABLES define how the template is generated.
# BLOCK RULES define how the layers are generated.
# LAYERS tells the mod how to place blocks using BLOCK RULES.
#
# You can specify a comment by placing a "#" character at the beginning of the
# line. You technically /don't/ have to do this, since the mod only looks for
# particular line starts when loading a template, but I consider it good form
# because it increases readability and you prevent any errant line reads.
# VARIABLES
#
# biomesToSpawnIn=<name1>,<name2>,<name3>...
# Adds the Template being loaded (regardless which folder it is in) to a Ruins Biome
# found in the Minecraft Biomelist so that <namex> matches the Biome's name.
# If you don't know a Biome's name, find it's folder. The foldername equals the
# Biome name. Case insensitive. A Template cannot be added to a Biome more than once.
# The Template is still added to the corresponding folder it was loaded from (if not already in).
# example: biomesToSpawnIn=forest,foresthills,taiga
# Optional. You can use the folders as before, or use this to save space, or both.
#
# weight=<weight>
# Weight is how much weight this template has during random generation. When
# the mod asks for a template to place it adds up the weights of all templates
# that are currently loaded and generates a random number based off of that
# total, then checks to see what template to load. If the mod loads five
# templates with weights 1, 5, 5, 10 and 10, the template with weight 10 has a
# 10 in 31 chance of being generated, while the template with weight 1 has a 1
# in 31 chance of being generated. A template only has weight in its biome.
# Defaults to 1.
#
# embed_into_distance=<number of layers>
# Specifies how many layers to embed into the target blocks. This is useful
# for creating basements or dungeons.
# Defaults to 1.
#
# acceptable_target_blocks=<blockID>,<blockID>,<etc...>
# This is a comma-delimited list of block IDs that this template can spawn on.
# Only the top layer of blocks where the template will spawn are checked.
# Optional line. Defaults to accept any block.
#
# unacceptable_target_blocks=<blockID>,<blockID>,<etc...>
# This is a comma-delimited list of block IDs that this template can NOT spawn on.
# Only the top layer of blocks where the template will spawn are checked.
# Optional line. Defaults to accept any block.
#
# dimensions=<height>,<width>,<length>
# Defines how big this template is. Height is the number n
# of layers that are used, not the height that sticks out n
# above the ground. Width is the north-south width, and www*eee
# length is the east-west width. For reference, north in s
# the template is the top of the text file. s
# All default to 0.
#
# allowable_overhang=<overhang>
# Specifies the allowed number of blocks in the potential build site that do not have
# a surface within a reasonable distance, leaving the template "hanging" over an edge
# Defaults to 0.
#
# max_leveling=<leveling>
# Specifies the maximum surface noise / height difference, within the build site,
# that will be accepted when considering a potential build location.
# The site will then be levelled prior to spawning the template.
# If there is overhang allowed, also specifies how much "support" blocks are put
# under the template when building it overlapping a surface edge.
# Defaults to 2.
#
# leveling_buffer=<lbuffer>
# The distance around the build site that will also be levelled. Values higher
# than 5 will use 5, since the world would otherwise be mangled pretty badly.
# Defaults to 0.
# Ruins 12.8 introduces a setting of -1, which will prevent any(!) site leveling
#
# preserve_water=<yes/no>
# If set to 1 all site checking rules will treat water as air so that the ruin
# can be generated beneath/in water. Any rules that replace a block with air
# will respect water and not replace it. If set to 0, water is treated like
# any other block.
# Defaults to 0/no.
#
# preserve_lava=<yes/no>
# If set to 1 all site checking rules will treat lava as air so that the ruin
# can be generated beneath/in lava. Any rules that replace a block with air
# will respect lava and not replace it. If set to 0, lava is treated like
# any other block.
# Defaults to 0/no.
#
# preserve_plants=<yes/no>
# If set to 1 all site checking rules will treat trees, leaves, and cactus as
# air so that the ruin can be generated in and around them. Any rules that
# replace a block with air will respect trees, leaves, and cactus and not
# replace them. If set to 0, trees, leaves, and cactus are treated like
# any other blocks. Cactus adjacent to other blocks will break down, so you
# may not actually see cactus in your structure.
# Defaults to 0/no
#
# random_height_offset=<min>,<max>
# Specifies block range in which the Ruin will be randomly shifted up or down
# on an established valid location before actually being built.
# Defaults to 0,0/no random shifting
#
# NOTE: When using preserve_water and preserve_lava it is advised that you
# restrict the cut_in_buffer as much as possible, preferably to 0. If it is
# more than 0 you may get some unexpected fluid dynamics if the structure
# does not spawn completely in water/lava.
#
# Ruins 13.8 adds optional variable "uniqueMinDistance" which overrides global templateInstancesMinDistance
# uniqueMinDistance=1500
# defaults to 0. values of 0 are handled as if no value was specified at all.
#
# Ruins 13.9 adds optional variable "preventRotation" which keeps a template in the specified direction
# preventRotation=1
# defaults to 0. values of 0 are handled as if no value was specified at all.
#
# Ruins 14.3 adds the optional repeatable variable "adjoining_template" which lets you spawn adjacent templates
# these will not be checked for minimal distances against ANY other ruins, make sure your spacings are big enough
# these will also not be checked for circular dependencies, you build an infinite loop, you wait it out
# these will be checked against the rules the template itself contains
# Ruins will use its spawning algorithm to determine a fitting y coordinate to the xz you provide
# adjoining templates will be randomly rotated, you can disable this in their templates if you want
# syntax: adjoining_template=<template>;<relativeX>;<allowedYdifference>;<relativeZ>[;<spawnchance>]
# <template> is the full filepath relative to the resources/ruins folder, so, working like /testruin
# <relativeX> and <relativeZ> are the relative coords from the host x,z spawnpoint to the adjoining x,z
# <allowedYdifference> states how much the computed adjoining template height may absolutely differ before aborting
# <spawnchance> is optional and does what the name implies, [0-100] values allowed
#
# Example: adjoining_template=generic/MoaiHead;-25;10;25;33
#
weight=5
embed_into_distance=1
acceptable_target_blocks=stone,grass,dirt,sand,gravel,clay
dimensions=4,7,5
allowable_overhang=0
max_leveling=2
leveling_buffer=0
preserve_water=0
preserve_lava=0
preserve_plants=0
# BLOCK RULES
# Each rule must be formatted carefully:
# rule<number>=<condition>,<chance to appear>,<list of blocks>
#
# rule<number>
# The mod does not care what you call these and will number the rules in the
# order they are loaded (sequentially from 1), so long as the line start with
# "rule". I suggest using "rule#" as a mnemonic, such as "rule1", "rule2",
# "rule12", etc... Once the templates are loaded, the first rule in the list
# becomes rule #1 for the purposes of building a layer, the second becomes rule
# #2, and so on.
#
# The mod uses a special rule, 0, which defines the Air block with a 100% spawn
# rate and no conditional. You can use this rule in the layers to "blank out"
# certain areas (providing space for mobs, for instance).
#
# <condition>
# A conditional to the block being placed, aside from randomness.
# 0 = Normal, spawns first
# ±1 = Checks block under, spawns delayed
# ±2 = Checks block adjacent, spawns delayed
# ±3 = Checks block above, spawns last
# 7 = Spawns last
# Where the negative cases for 1,2,3 denote NOT. In other words, 2 means the block will only spawn
# if there is a block next to it, while -2 will NOT spawn if there are any blocks next to it.
#
# Adjacent in this case is not diagonal, only along the cardinal directions.
#
# Adjacent blocks are processed after 0 and 1 conditionals have been placed,
# and "under blocks" are processed after all other blocks have been placed.
# Please note that these blocks are still processed in an order dependent on
# the rotation of the site. For a normal, north-facing site, the block rules
# are processed for each line from the left and from the bottom template to the
# top.
#
# DO NOT CHAIN CONDITIONS. That results in undefined behaviour.
#
# <chance to appear>
# The chance that this block will appear, out of 100, depending on whether the
# condition above is met.
#
# <list of blocks>
# A comma-delimited set of minecraft blockIDs. This will determine what block
# will actually spawn in the location. Each blockID is given the same weight,
# so you can skew the odds of a certain blockID appearing by adding it multiple
# times. You can specify block metadata by adding a "-<metadata>" after the
# blockID. For instance, to place a cobblestone stairs block ascending to the
# east, use stone_stairs-3. To place a wood half-block (slab), use stone_slab-2.
#
# You can find a list of blockIDs and commonly-used metadata via Google.
# There is also one included, idmappings.txt
#
#
# Example 1: rule1=0,100,0,cobblestone,mossy_cobblestone
# This spawns either air, cobblestone, or a mossy cobblestone 100% of the time.
#
# Example 2: rule1=1,50,mossy_cobblestone
# This spawns a mossy cobblestone 50% of the time but only if another block
# is underneath it.
#
# Example 3: rule1=2,100,stone_slab-2,planks
# This spawns either a stone slab or a plank block, but only if there is an
# adjacent block on the same level.
#
# Example 4: rule1=0,100,torch-5
# This spawns a torch standing on the ground.
#
# Example 5: rule1=0,25,MediumChest
# This spawns a Medium Chest (see above) 25% of the time.
#
# Example 6: rule1=0,50,MobSpawner:Villager
# This spawns a Mob Spawner with Entity Id "Villager" 50% of the time
# Entity Id's are case sensitive! Mod added Mobs are allowed. Use a tool like Simply Hax to get correct Entity Id's
#
# Ruins 9.0 exposes minecraft ChestGenHook for your meddling. Usage:
#
# Example 7: rule1=0,100,ChestGenHook:chests/simple_dungeon:10
# This spawns a chest and tells the Minecraft generator to fill it with "10" itemstacks of the "chests/simple_dungeon" loot preset.
# This might include extremely powerful items added by mods. Note: The algorithm spreads out the itemstacks, it might be more than 10
# items in this particular case, e.g. 5 pieces of bread count as 1 itemstack, yet will be spread out over 5 slots.
#
# see http://minecraft.gamepedia.com/Loot_table#List_of_loot_tables for possible loot tables (as of MC 1.9)
#
# As of 10.6, all chest rules can also append a metadata/rotation int similar to a chest block ID
# example: rule1=0,100,ChestGenHook:chests/simple_dungeon:10-5
# for a chest filled with dungeon chest loot and rotated to meta 5.
#
#
# Ruins 10.3 adds Command Block Support. Usage:
# Example 8: rule1=0,100,CommandBlock:command:sender
# command being the Command string to be executed and sender being the Command sender (a player name, Rcon...)
# you can provide several alternative command blocks seperated by commata, however you may not mix command blocks and other blocks in one rule
#
# Ruins 12.1 adds Standing Signs. Usage:
# Example 9: rule1=0,100,StandingSign:a|b|c|d-4
# a,b,c,d are the 4 Strings/lines you can write on a sign. The metadata/rotation of the sign is affixed as usual.
#
# Ruins 12.2 adds IInventory block support. Usage: IInventory;<blockName>;<itemList>-<blockrotation>
# where <blockName> is the registry name of the Block that sports an inventory
# where <itemList> is a list of elements seperated by '+', each element is a block or item registry name
# optionally followed by #stacksize OR #stacksize#metadata OR #stacksize#metadata#inventoryslot
# Example 10: rule1=0,100,IInventory;chest;red_flower+arrow#10+wool#3#15-5
# this spawns a chest rotated to 5, which will contain a single red flower, 10 arrows, and 3 wool of color red (meta 15)
# Example 11: rule1=0,100,IInventory;dispenser;arrow#10+snowball#20+egg#3-1
# this spawns a dispenser rotated to 1, with 10 arrows 20 snowballs and 3 eggs
# you may use this for items added by mods. names not found in the registry will simply be skipped over.
# you may also use this for container blocks added by mods. invalid anythings should be skipped.
# the Ruins Parser will do this for you when you parse an IInventory block. Empty chests get hooked with dungeon loot
# automatically. If you want to prevent this, either edit the template afterwards or place some dirt in the chest.
# if you specify the same slot index multiple times, only the first itemstack gets put in
#
# Ruins 15.0 adds ChestGenHook (see above) as valid <itemList> entry for IInventory rules
# Example: rule1=0,100,IInventory;dispenser;ChestGenHook:dungeonChest:5-1
#
# Ruins 14.3 adds the -addbonemeal flag to use on IGrowable blocks such as saplings or most plants
# simply append -addbonemeal to a block which is an IGrowable (and only those!)
# note this overrides certain checks done before hand application of bonemeal, such as darkness checks for shrooms
# also note /undo does NOT take growing things into account when cleaning up your shenanigans
# below example is for oak and dark oak saplings
# Example 12: rule1=0,100,0,sapling-addbonemeal,sapling-5-addbonemeal
#
# Ruins 14.9 adds support for item NBT data. the json nbt string replaces 'stacksize' in the format, as nbt capable items are never stackable
# Example 13: rule1=0,100,IInventory;minecraft:chest;minecraft:diamond_sword#{RepairCost:2,display:{Name:"Choppa"}}#0#0
#
# Ruins 15.0 adds support for tile entity NBT data. This is best achieved by adding the blockname to the global "teblock" variable in ruins.txt
# Usage: teBlock;<blockName>;<nbttag json>-<blockrotation>
# Example: rule1=0,100,teBlock;minecraft:trapped_chest;{x:-156,y:65,z:72,Items:[0:{Slot:12b,id:5s,Count:1b,Damage:0s},1:{Slot:13b,id:24s,Count:1b,Damage:1s}],id:"Chest"}-2
# Note: "Chain" and "Repeat" Command Blocks are classified as such by default
#
rule1=0,100,preserveBlock
rule2=0,80,brick_block,brick_block,dirt,stone,gravel
rule3=0,100,brick_block
# LAYERS
# Each layer is a comma-delimited list of rules, one for each block. There
# must be as many layers as the height, and each layer must have "layer" before
# the rules and end with "endlayer". There are as many rows as the length, and
# as many rules as the width. If you want the block blanked out use 0, which
# represents the Air-block rule.
layer
2,2,2,2,2
2,1,1,1,2
2,1,1,1,2
2,1,1,1,2
2,1,1,1,2
2,1,1,1,2
2,2,2,2,2
endlayer
layer
3,3,3,3,3
3,0,0,0,3
3,0,0,0,3
3,0,0,0,3
3,0,0,0,3
3,0,0,0,3
3,3,3,3,3
endlayer
layer
3,3,3,3,3
3,0,0,0,3
3,0,0,0,3
3,0,0,0,3
3,0,0,0,3
3,0,0,0,3
3,3,3,3,3
endlayer
layer
3,3,3,3,3
3,0,0,0,3
3,0,0,0,3
3,0,0,0,3
3,0,0,0,3
3,0,0,0,3
3,3,3,3,3
endlayer
The above text in spoilers isn't the most recent version, and the file should be on the top level when extracting the files.
Also I have a guide to making templates, it's rather simple, consisting of tips from my posts from the last couple years:
--------------------------------------------
Guide to Making Templates for Ruins Mod:
--------------------------------------------
Since directing players to specific forum posts can be slowed by the forum site itself,
I've consolidated my posts so new players can benefit now.
===========================================================
Block-Lists
This list is only needed for templates expected to be put in the "Generic" folder
In March 2015, Sinhika suggested clouds from Natura be put in the default list
This is my most complete list for Generic templates:
unacceptable_target_blocks=flowing_water,water,flowing_lava,lava,ice,bedrock,netherrack,nether_brick,nether_brick_fence,soul_sand,quartz_ore,gravel,end_stone,obsidian,iron_bars,cloud,flesh,ash_block,slime_grass,slime_congealed,slime_dirt
---
This is broken into sections that are useful for different things:
Overworld:
flowing_water,water,flowing_lava,lava,ice
Nether/End crossover prevention:
(only needed for templates in the "Generic" folder)
bedrock,netherrack,nether_brick,nether_brick_fence,soul_sand,quartz_ore,gravel,end_stone,obsidian,iron_bars,flesh,ash_block
Overworld silly spawn-sites:
slime_grass,slime_congealed,slime_dirt,cloud
----------
Templates can be moved out of generic into specific biome folders, if there is
enough content to ensure filling the world with a good variety of structures.
==========================================================
Gillymoth Tip #2677 (page 134)
Extra spaces at the end of lines in the Layers can break a template:
Grab the text with the mouse to highlight spaces at the end of lines.
"Here's a quick tip when a ruins file is "broken" but it looks perfect in the code:
layer
3,3,3,3
3,3,3,3
3,3,3,3
endlayer
select the above block of 3's to reveal the extra spaces at the end of each line. I've had this happen
to me and it took a while to find it, let alone realize that such a seemingly minor detail could break the code."
This can only happen when handbuilding the template,
like if a cat walks across the keyboard (very common in some places)
-------
Gillymoth Tip #2681 (page 134)
"if you click on blocks with a stick, it says in chat the blocknames and metadata"
This is a stock feature of Ruins Mod, and is useful in getting block-names
to use with the /fill command, and for manually editing template
-------
Gillymoth Tip #2659 (page 133)
"This keeps blocks the same during the building phase where in the data the rule is specified:
rule1=0,100,preserveBlock
but the above happens after leveling the ground (filling in) for building, which can be turned off with a -1 value here:
leveling_buffer=-1
This is useful for exposing the foundations of buildings on the side of a hill, but still have them flat on plains."
-------
Gillymoth Tip#2931 (page 146)
"you could do it the same way as I do exposed foundations for my buildings,
tree roots would be handled exactly the same, just use these three together:
embed_into_distance="how deep you want the roots"
max_leveling="how deep you want the roots" (same as number for embed_into_distance)
leveling_buffer=-1
setting the leveling buffer to -1 keeps it from filing ANY land (above the first layer),
and when used in conjunction with embed into distance, you get exposed foundations, and it still places on rough land.
After finishing the structure design, build a water-tight tub around the roots and fill it with water,
the water spread will make filling the area easy and you can change the water rule to "preserveBlock" in the file itself,
(provided the structure wasn't actually supposed to be a lake)."
I discovered that these settings for these three rules are optimal,
and should be used in most cases for new templates
-------
Gillymoth Tip #2821 (page 132)
Use water-spread to quickly fill in areas for making the preserveBlock rule:
"someone mentioned (wanting the option for) the templateparser to use preserveBlock instead of air (as a default setting),
because their template was too massive to do it by hand.
Anyway, I used water spread to fill in the area I wanted to use for preserveBlock,
and just replaced the water-rule with preserveBlock."
*Picture titled "DomeInTub" with my spawn dome inside, the area around it filled with water
---
This tip is still useful in current versions, just use it to fill up the much smaller inside "air" areas by hand,
before using "/fill replace" to turn air into the preserveBlock material, and then change the water back to air.
-------
Gillymoth Tip #3054 (page 152)
"You don't have to make a solid baseplate, just a rectangle that defines the outer edge.
A filled baseplate would still be useful if you wanted it to hold in water.
I like to use water to fill in my "preserveBlock" rule, in combination with
orange wool for the feathering to blend it into the land."
(in 1.12+, orange wool is too bright to look at in large areas)
---
Gillymoth Tip #3123 (page 156)
Build a ring of wool under your structure and type "/parseruin filenamegoeshere" and break a wool under the building.
Then test spawn in an open space with "/testruin samefilenameasbefore" and make adjustments as needed,
using placeholder blocks for "preserveBlock", etc
-------
Gillymoth Tip #2974 (page 148)
"I still prefer 1.8 commands for this purpose:
/fill ~12 ~3 ~12 ~-12 ~-3 ~-12 farmland 7 replace grass
/fill ~12 ~3 ~12 ~-12 ~-3 ~-12 wheat 7 replace tallgrass
The above is from my 1.8 wheat field template design"
This makes farms that conform to the surface with a single set of commands
-------
The above tips are shown to speed up the process, so others can benefit from
things learned from the experience of designing hundreds of completed templates.
-------
Important Tip:
Included in the Ruins installation is the "template_rules" file.
It contains all the information needed to assemble all kinds of fancy builds.
=============================================================================
-------------------
Template Size
-------------------
Templates under 20-30K generate nearly instantly, and I suggest not going over a 50K file size,
any larger and it takes an increasingly noticeable amount of time to generate that structure.
Minecraft generation can much more easily handle vertical structures that generate in fewer chunks,
than ones that spread over a wide area.
20-30 blocks sideways (under two chunks) is a good size to build in for fast generation,
and I suggest 15-20 blocks across as larger foundations are more difficult to keep a build grounded
on any random surface.
Templates with dimensions in odd numbers are easier to align into multi-structure builds,
as they align at the center of a block.
Templates with Even numbers for dimensions can be used for a little extra randomness.
=============================================================================
-----------------
Lag-Busting
-----------------
Another lag-busting tip is to try to void overusing blocks or entities that minecraft does extra checks on.
Several common detailing blocks have entities attached to them to store extra data, the minecraft wiki
has a complete list. Using them in builds is fine, just be aware of how much lag they produce in
massive quantities.
Since Ruins is usually played in heavily modded worlds, expect the other mods to have already used up most
or all of the leeway in this area. It's best to tread as lightly as possible when using such blocks.
Also expect that the player is going to want to place down a lot of things like chests and furnaces where
they decide to make a base, and they commonly choose these builds to do so.
===========================================================================
----------------
Foundations
----------------
Layers under the floor level of a build are important in blending a structure into the ground.
embed_into_distance= (place number of layers under surface here, and negative numbers for flying builds)
Foundations should be at least 4 blocks deep for anything with a small footprint around 8x8,
and 7-8 blocks deep for buildings around 20x20
I also suggest breaking up anything too much larger into parts that can generate separately.
This opens up using the parts as a construction set, that can be assembled in many different ways.
============================================================================
-------------------------------
Blending the Structure in
-------------------------------
max_leveling=
embed_into_distance=
I suggest setting max_leveling to the same number to match embed_into_distance, at most.
max_leveling determines exactly how hilly a surfce can be to accept a build location,
so a higher number increases the chances of spawning, but if it exceeds the depth of
the foundation, the outer edges will appear to be floating.
leveling_buffer=-1
In most cases, the leveling feature of Ruins will tend to break the landscape.
Setting it to -1 turns it off, as preserveBlock is a better way to ensure
a good fit with the land.
Use in conjunction with the above two settings, to optimize performance.
================================================================================
-----------------------
Master-Template
-----------------------
Have a "master-template" on your desktop, use it to store commonly used iists and rules
Most importantly, use it to add the finishing touches on templates, as outlined by
the above conventions
the unacceptable_target_blocks list is such a standard, and is most useful for
new players who will be placing everything in generic as a starting place
=================================================================================
------------------------------------
Folder/File Naming Conventions
------------------------------------
In the continuous process of developing structures, my "templateparser" folder is
filled with tons of bits and pieces of templates, experiments, and temp files.
The folder houses my workspace and as such gets very messy, so I use the 'Gilly' folder
as my place for released support files. I've also kept a naming convention for all
of my released templates. Every file starts with "Gilly" to prevent duplicate filenames
if the content ends up getting merged with any other content.
I suggest that new players who decide to make content consider choosing a unique marker
in their filenames for this exact reason, and I extend this suggestion to content makers
who make things for other mods/systems as well.
Gillymoth Structures for Ruins <<< Folder containing my Structure-sets for Ruins mod.
Thanks, that helps a ton
# Ruins 13.8 adds optional variable "uniqueMinDistance" which overrides global templateInstancesMinDistance
# uniqueMinDistance=1500
# defaults to 0. values of 0 are handled as if no value was specified at all.
Does this apply to all templates or just the template in which this parameter is in?
i.e.my tower will only spawn again if it is outside that distance or my tower will not spawn if it is not outside that distance from all other templates?
Oh, and I would love to have your airships spawn in my worlds if you post the templates.
This is what I've been working on. It's a rather large pyramid that I have partially buried in the sand (much like the Sphinx was when it was found). I'm just having problems having it spawn on top of itself. There are too many characters to post all of the layers.
# LargePyramid
# Author: Ozzitosis
weight=20
biomesToSpawnIn=Desert
unacceptable_target_blocks=flowing_water,water,flowing_lava,lava,ice,bedrock,netherrack,nether_brick,nether_brick_fence,soul_sand,quartz_ore,gravel,end_stone,obsidian,iron_bars,cloud,flesh,ash_block,slime_grass,slime_congealed,slime_dirt
embed_into_distance=5
dimensions=30,60,60
max_leveling=30
leveling_buffer=-1
allowable_overhang=9000
preserve_plants=1
uniqueMinDistance=50
rule1=0,100,preserveBlock
rule2=0,100,sandstone