
--------------------------------------------
  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.

  





