• 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)

    Does it rotate the command automatically to fit the rotation of the original ruin?


    If you're running 1.12.2 or earlier, yes. Ruins does try to rotate relative coordinates in a CommandBlock directive. Usually it succeeds, sometimes it doesn't. It does not rotate the rotation parameter, though, if you specify one. It also does not rotate coordinates for command blocks spawned in through the teBlock directive.


    Ruins doesn't do that after 1.12.2. If you were running 1.15.2, you would have to change the coordinates as you described.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)

    Though, Doesn't the commandblock "RUINSTRIGGER" prevent most "outside of world" error?
    since the rooms would only trigger when you get closer.
    I often use it for bigger structures, the "Pop in" isnt really an issue for us.


    Well, "prevent most" is a bit strong, but if you're willing to live with structures materializing out of thin air (and I imagine that's perfectly acceptable for underground structures), RUINSTRIGGER could reduce the incidence of "outside of world" errors a bit...maybe by 20% or so on average. Significantly less, if the stuff you're /testruining in is larger than 16x16.


    Keep in mind RUINSTRIGGER doesn't fire when you get closer. It fires when any entity gets closer. A chicken, maybe. Non-player entities don't (typically) guarantee nearby chunks are generated or loaded.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)

    I imagine the easiest way to do it is to stop thinking of a template as representing a single room or stretch of corridor, but rather a larger module consisting of several (say, 3-5) rooms and interconnecting hallways. As a simple example, imagine a dungeon is built of five modules: an "A-type" module in the middle, a "B" module to the north, a "C" to the south, and a "D" and "E" to the east and west, respectively. I'm going to make six different versions of each type, designing them carefully to ensure every A module template's north edge interfaces with every B module's south edge, and so on. Now I just select a random A, B, C, D, and E, piece them together, and voila! 15,625 different dungeons in just 30 templates.


    The beauty of this system is you don't have to worry about accounting for overlapping features, mismatched boundaries, or runaway growth. It's easily extensible and quite flexible. True, it doesn't give you an infinite number of truly random dungeon layouts, but it gives you a lot. Especially if you throw in rule variants to increase the diversity of possibilities.


    If you're set on implementing what's essentially a maze generation algorithm using individual rooms and hallways, however, you're looking at spawning and moving command proxy entities, manipulating the scoreboard to maintain state information, and placing marker blocks to ensure connectivity and prevent overlap. Possible, but definitely not easy.


    Either way, you're going to quickly run into a problem. While Ruins itself doesn't limit the size of a structure, Minecraft restricts where Ruins is allowed to build, effectively constraining templates to a 32x32 block footprint. That includes adjoining_templates and /testruin spawns. Anything larger than that is vulnerable to the "outside of world" error, occasionally yielding failed or partially-failed structures. The larger the build, the more likely the error. Don't let that stop you--there's not much you can do about it--but it's something to watch for.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)

    The 1.15.2 version of Ruins was just released, so be sure to update if you're still using the one for 1.15.1. Unless, of course, you're actually running Minecraft 1.15.1, in which case...what's wrong with you?


    All the changes are technical ones--no new functionality or anything like that. The main difference is Ruins is no longer a coremod. If that doesn't mean anything to you, the bottom line is it improves compatibility with other mods (in particular, custom world generators).

    Posted in: Minecraft Mods
  • 1

    posted a message on [1.15.2] Ruins (Structure Spawning System)

    I have found that no matter what I do, the ruins will ONLY show up in a new world.



    If you haven't already, try this:
    1) stop the server (or exit Minecraft, if you're playing single-player);

    2) locate and delete the file RuinsPositionsFile.txt in the world folder;

    3) restart the server/Minecraft, then regenerate chunks.


    That is Ruins' "memory" of where structures were placed. If it's not cleared, Ruins will think structures from a previous iteration of the world are still there and won't place new ones. If there is no such file, or you've already deleted it, or deleting it doesn't help, something else is going on. Let us know.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)
    Quote from yukinagato»

    Anyone know why this script doesnt spawn this structure at all?


    It works for me. Three questions, though...

    1) What's the name of the file? It needs to have the .tml suffix to be recognized as a template, so after downloading your file I renamed it from zinc.txt to zinc.tml .

    2) What folder is it in? In order for structures to naturally spawn, it must be in either a biome folder (or generic/, but you probably don't want it there). Pick the folder for any one of the biomes in which the thing is intended to appear (i.e., according to biomesToSpawnIn). I put it in ocean/ .

    3) Does the block ID additions:blocks-nativezinc exist? If not, an error message will appear in the log file, and no structures will spawn for the template. I assume it does, but without access to your Additions configuration, I can't know for sure. You can test it by going in-world and entering the following command: /setblock ~ ~-1 ~ additions:blocks-nativezinc . Either one will appear at your feet, or you'll get an error message.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)

    I'm currently having issues finding my Unique Structures, It's like they never spawn at all.
    (i set to uniqueMinDistance=6000000, this is to make sure they spawn only once.)


    That should work. In fact, I just tested it, and it does work. Something else is inhibiting your structure from spawning, apparently. Or...is it possible it did spawn once, and you just didn't notice it? Look in RuinsPositionsFile.txt if you haven't already and see if you can find it there.


    No, Ruins doesn't count failed attempts as spawns. It does, however, count any spawns that may have occurred in the world before you changed the value of uniqueMinDistance, if you're reusing the same world over and over for testing.


    As an aside, you might also consider setting spawnMinDistance to a fairly large number, too, to prevent all your unique structures from appearing close to worldspawn (unless you want that), and weight to a fairly small number to reduce the chance they're all clumped together.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)
    Quote from ob12434776»

    has anyone else had issues with loading templates in 1.15.1? I tried adding Gillymoth structures and Greywolf's pack. In logs I can see that they throw an error saying incorrect template name but I'm not sure how to fix this?


    By "throw an error," do you mean during worldgen, or when using the /testruin command? If the latter, the problem could be as simple as not specifying the correct path to the template. A valid /testruin command looks like this (perhaps with some additional parameters):


    /testruin plains/WembleyStadium


    Make sure you...

    1) ...do include the folder in which the template is located (unless it's in the templateparser folder, in which case the folder name is optional),

    2) ...do not include the .tml suffix, and

    3) ...do mind UPPER vs. lower case.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)
    Quote from Syndaryl»

    Can we have the modsrequired tag filled out properly by /parseruin? just add all the unique domains used in the construct


    Problem is, while the namespace part of a resource location for a mod block, item, or loot table is usually the ID of the mod responsible for adding it, there's no requirement that it needs to be. Some mods, for example, are intended as enhancements to other mods, and may register things under the same namespace as the their corresponding "parent" mods. A mod adding a ton of new stuff may partition it into multiple separate namespaces--none of which necessarily match the mod ID--for its own purposes. Sometimes a mod author will change the mod ID without updating the namespace name, or vice versa. I've seen all three of these exceptional cases even in the relatively small number of mods I use on my server. Then there's the matter of biomes, for which Ruins doesn't support the use of namespaces at all...


    Unfortunately, there's no reliable way to automatically populate the requiredMods setting. I'd argue it's better to leave it blank (as it does currently) than to set it incorrectly. It's better to have the problem of "why are some blocks missing from my structures?" than "why aren't my structures spawning at all?"; the former pretty much points right to the issue, while the latter could have any number of causes and is thus harder to debug.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)
    Quote from AtomicStryker»

    Foliage blocks (technically, material:plant) are disregarded in general when looking for locations.


    Alas, not in 1.15.1. The only blocks ignored are air, snow, and cobwebs. I don't know if it worked back in 1.13.2, when the determination as to whether a block should be ignored as a plant was changed to rely on a call to Block.isFoliage(). That's ineffective in 1.15.1, though--at least for vanilla blocks, for which the method always returns false. I submitted a pull to make it a straight block material check, instead. Now it should catch all leaves, plants, and plant-like things, hopefully in keeping with user expectations.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)
    Quote from Jordan_Peacock»

    Is it possible to override the default "rule0"?



    Yes, just as in previous versions. Put an unnamed rule at the top of the list of rules to define rule0 for the template. So, in your example, you make the first rule...

    ={Name:"air"}


    ...and that becomes rule0. All subsequent rules are then numbered 1, 2, 3, and so on, as usual.


    EDIT: To clarify...by "unnamed" I mean there's nothing (like "rule0" or "rule") to the left of the equals sign. I should probably come up with a better term, considering the only tag in my so-called unnamed rule is Name. Oh, well.

    Posted in: Minecraft Mods
  • 1

    posted a message on [1.15.2] Ruins (Structure Spawning System)

    New 1.14.4 release features:


    • Added ruins:null pseudoblock for use in rules. When "placed," it does not affect the existing block in that position. Same as preserveBlock in previous versions. Example: rule5={Name:"ruins:null"}
      • Default rule0 is now ruins:null instead of minecraft:air.

    • Added Ruins block tag under which all Ruins-specific subtags (currently: entity, weight, and bonemeal) reside. Some, all, or none of these may be applied to any particular block. Example: rule6={Name:"oak_sapling",Ruins:{weight:5,bonemeal:1}}{Name:"oak_sapling",Ruins:{weight:0.1}}{Name:"furnace",Properties:{lit:"true"},Ruins:{weight:0.005,entity:{CustomName:"\"FORNAX\""}}}
      • Deprecated ruinsTE={...} tag for block entity specification. It still works--providing backward compatibility for existing template files--but emits a warning to the log file. Use Ruins:{entity:{...}} instead. Block entity IDs are inferred and need no longer be specified. New templates created via /parseruin now follow this format. Example: rule7={Name:"birch_sign",Ruins:{entity:{Text2:"\"easy-peasy\""}}}
      • Reinstated block weighting; use Ruins:{weight:X}, where X is a non-negative integer or floating-point number (default=1). Example: rule8={Name:"dirt",Ruins:{weight:10}}{Name:"gravel"}{Name:"sand",Ruins:{weight:0.2}}
      • Reinstated addbonemeal feature; use Ruins:{bonemeal:X}, where X is a non-negative integer (default=0). Values greater than 1 can be used to apply multiple grow ticks. Example: rule9={Name:"spruce_sapling",Ruins:{bonemeal:2}}

    • Bug fixes (NBT parsing, potential worldgen deadlock)
    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)

    Can anyone help me with a crash problem?


    Looks like you've got a runaway worldgen cascade, where creating one new chunk forces another to be created, which in turn forces another, and so on until you run out of memory. A lot of pre-1.13 structure-adding mods (including Ruins) cause a bit of worldgen cascade. A little isn't so bad...but if there's a whole pile of it, you get lag spikes and even crashes. That's where you are,


    Your log shows evidence of a classic worldgen cascade: a long chain of new chunk generation. While it is possible for Ruins to trigger a runaway situation, you almost need to maliciously configure it to do so. I'm pretty sure Ruins isn't the culprit here: of the 39 links in your cascade, only 4 of them are from Ruins. As for the others, 5 are from Gany's Nether and a whopping 30 are from Arcana RPG. I'm not familiar enough with those mods to say exactly what's going on, but I suspect your problem really lies with Arcana RPG, or at least how it interacts with one or both of the other two.

    Posted in: Minecraft Mods
  • 0

    posted a message on [1.15.2] Ruins (Structure Spawning System)

    One way could also be to use some other "air block"...


    You're on the right track, but you already have everything you need. My guess is you're using rule0 for both exterior and interior space. Contrary to what you may think, the default rule0 is not air, but rather a special "background" air (namely, ?air) that respects preservation of plants and snow and stuff, as you noted. That's fine for outside space, where you don't want to disrupt the surroundings, but probably not appropriate for inside space, where you do. All you need is a separate interior air rule in addition to rule0, something along the lines of...


    rule19=0,100,air


    ...and use that inside your building. If you use /parseruin to generate Ruins templates, Gillymoth's suggestion above is to fill the interior with something silly, like lime wool, then edit the resultant template file to replace wool-5 with air to easily implement this. Regular, non-background blocks, even air, never care about preservation, happily stomping on whatever gets in their way.


    Incidentally, you can use the question mark prefix to include preservation-honoring background blocks in other rules--not just rule0, and not just air--to achieve certain special effects. There's also an exclamation mark prefix for "foreground" blocks that only clobber stuff that's otherwise preserved (perfect for, say, that house on stilts you always wanted to build). But that's more than you wanted to know.

    Posted in: Minecraft Mods
  • 1

    posted a message on [1.15.2] Ruins (Structure Spawning System)
    Quote from xorange»

    I'm running Ruins on my 1.7.10 server, and every now and then I see something like this:

    [03:32:26] [Server thread/INFO] [STDERR]: [atomicstryker.ruins.common.RuinTemplateRule:doSpecialBlock:677]: Ruins Mod could not determine what to spawn for [minecraft:air] in Ruin template: JG_Sphere_Cave_31_1v7v10.tml


    It tends to spam the console until the server crashes.

    My searches are not yielding any results.

    Anybody have any idea what's going on there and/or how I can prevent it?


    There was a bug, fixed in 1.12.2, preventing Ruins from recognizing minecraft:air as a legitimate block ID. Since you're running a version without that fix, you'll need to replace all occurrences of minecraft:air in your templates with simply air. That should eliminate the errors.


    Note for all other blocks, the minecraft: domain works fine, so you only need to remove it from air blocks. For example, stone and minecraft:stone are both valid and interchangeable. Just not air.

    Posted in: Minecraft Mods
  • To post a comment, please or register a new account.