Jump to content


  • Posts

  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

BearWrestler's Achievements

Stone Age Settler

Stone Age Settler (3/8)



  1. Honestly what you describe sounds horrendously boring to me and the complete antithesis of immersive gameplay, not to mention that you've ruined any enticing natural appearance the cave might've had after you're done "redecorating" to control drifter spawn. I really hope the devs are planning to cut down on insta-placing of blocks down the line, given how at odds it is with the more realistic crafting processes. At least during combat - I'm not as bothered by abstracting time away when everything is peaceful. Once they've taken away map-altering mechanics like fences and dirt spam, devs can actually focus on quality fighting mechanics, for instance modeled after King's Field/Demon Souls/Dark Souls where single enemies can be very challenging. There are a million more ways to make combat more interesting, which is why I'm so surprised to see you defend the status quo so desperately. For instance having territorial monsters that defend their abode, instead of charging you on sight. The game might need a massive redesign in some areas to make them work, but without such ambitions it will forever feel mediocre (in the fighting area, it obviously has superior crafting mechanics). As far as the resource gating goes, caves don't really gate anything useful except teleporters, which would gain from being accessible much earlier to encourage map exploration. Ore can be found more efficiently by systematically prospecting a zone to identify the best chunks, and then digging multiple vertical shafts which often don't run into a cave at all. The main challenges in cave exploration should be similar to real-life: darkness and treacherous, perhaps slippery terrain, the cold, getting lost, starving. A weight system limiting how much you can carry in such an expedition, especially when climbing ladders (and future ropes) and swimming in eventual flooded passages would go a long way in adding challenge. Dissociating enemy spawns from the dark and preventing the player from unrealistically spamming the whole place with torches would also improve the exploration mood a lot.
  2. I never said that the underground should no longer be dangerous. I said that it shouldn't be dangerous everywhere, just in certain easy to identify regions of the map. Again, just like Terraria which has corrupted biomes which are way more dangerous than the rest of the map, and are even more dangerous the further down you get. This 100%. My group doesn't like using exploits either, or running around like crazy kiting drifters like you see some poeople on Youtube do. They don't make exploring the underground feel any better. Also some of them involve turning dirt physics off. Honestly almost anything spawning system you can think of would be better than the current situation with cave exploration. Doing enemy spawn exactly like Minecraft (especially now that it only spawns enemies on 0-light blocks and in spawners) would be a huge improvement, for instance. Even when playing a challenge where torches were forbidden and surrounded by multiple pitch-black areas, enemy spawns were rare enough that a creeper silently dropping next to you was a huge surprise, and infinitely more scary than drifter spam. Vintage Story is a slow, almost meditative game (see: crafting pottery). It's so weird that it turns into some kind of frantic tower defense as soon as you head underground. Spamming enemies is totally not "Lovecraftian" as the game claims to be. Something much more appropriate would be to make cave exploration a lonely, wondrous experience with hints of danger and dread, and the occasional encounter with something scary and dangerous. Making the world go deeper and having caves be much larger systems that you can really get lost and travel in (think Jules Verne's Journey to the Center of the Earth) would help in this regard.
  3. I do believe there is a bug, that might be similar to the problems fixed in 1.15.2 with the foliage decay queue not being processed fast enough. I'm under the impression that there is a spawn queue that can take quite a while to process. So what probably happens is that the wolf/drifter spawn gets requested at the correct distance from the player, but by the time the spawn request is processed the player might've moved to the exact spot of the spawn, resulting in the often-experienced "spawn on top of your head". What seems to reinforce this theory is that I've recently experienced animals taking several days to appear in some locations. Coincidentally, the server was working pretty hard because all three of us had cranked our view distance to maximum to take screenshots and were exploring separate areas of the map. I think it's great to have mid-game and end-game challenge areas, but not so great to completely block players from serious spelunking until they are fully decked out. Exploring caves is one of my favorite activities in Minecraft (and doubly so since the magnificent Caves and Cliffs snapshots have landed), not so much in Vintage Story because of the endless hordes of drifters. Even with switching to Exploration mode to make them less aggressive and making them spawn only on light level zero blocks, they can be quite an annoyance. The best idea would likely be to have corrupted biomes like Terraria, which are a lot more dangerous, but also have areas with much lighter challenges where you can explore pretty deep.
  4. Thanks for sharing your opinion and advice guys. I do appreciate this community - and the game as well, although I got a bit grumpy. I do agree that the mod DB was a good move, worth the time invested. Small update, now some animals decided to show up in a few locations (possibly cooler ones?), but it took something like 4-6 in-game days for them to appear. I have no clue whether this is due to 1.15 or adding back Primitive Survival, or if it was always that delayed and I never noticed. Or perhaps the server was overloaded somehow and struggling to process the spawning? Either way, it seems like something the game might have to solve, because areas felt awfully empty when exploring and it was hard to locate those with fauna. Don't berry bushes stop maturing and even regress above 30 Celsius now?
  5. Maybe the game has been invaded by players (at least the portion of them visiting the forums and voting on polls) who'd rather play house than horror survival. Doesn't make me any less disappointed, it's not what's advertised on the tin (a.k.a homepage), and devs specifically said they were not slavishly following player's wishes. Also, I suspect that a portion of players who voted homesteading had in mind more primitive survival-related stuff like animal husbandry - which barely got touched in 1.15 -, rather than pies and interior decorating, a.k.a. grandma simulator 2021.
  6. Thanks for the confirmation. Damn, I wish the game was more up-front about this kind of thing, because it's gonna dash my small group's hopes. Something like showing this message at download time or when starting a new world: "If you want to have fun and progress through the available tech levels, stick to a temperate region (fauna is incomplete in other climates) outside wooded areas (primitive spawn mechanics make it impossible to be safe from wolves)". In light of this and previous findings I'm not happy with 1.15's direction (although I like the single feature of the rope ladders). Pies, seriously? Why not knitting, tea sets and embroidery while we are at it*? When the water and tropics are devoid of life, there's no breathing mechanic (and player is hardcoded to sometimes spawn in water so community can't mod in oceans or breathing), drifter and wolves spawn right on top of you and a nomadic lifestyle is pretty much impossible without modding? *Vintage Story, the uncompromising Tea Salon game! Horror elements include your cookies being slightly charred, and gossiping.
  7. Our small group of 3 players made it to the South after an epic journey of 15000+ blocks. I must say that seeing the scenery gradually changing as temperatures rose was pretty amazing, something you can't experience in Minecraft for sure. It felt like quite the achievement to see our first bamboos and saguaros, not to mention termite mounds and hyenas in the desert. However, when we explored further to find a spot to settle, we found very little in the way of animals (besides aurochs which I believe are from Primitive Survival). Is that something expected of tropical areas, or were we perhaps moving faster than the server's capacity to add spawns? I know that at some point I cranked up my view distance to max to take screenshots which I imagine must increase the chunk generation load. At this point we're getting disappointed since the plan was to settle in the south all along, but it won't work if there's no food. Hence my trying to figure out if it's just content that's not implemented yet, a 1.15 bug, some mod issue, a config issue, us not waiting long enough for the spawns to appear (is more that a full day-night needed?) or gremlins.
  8. Looks like this mod crashes under 1.15: 16.7.2021 20:40:31 [Fatal] System.Exception: Asset game:worldgen/schematics/overground/ldsurfacetrans01a.json could not be found à Vintagestory.Common.AssetManager.Get(AssetLocation Location) à Vintagestory.ServerMods.WorldGenStructure.Init(ICoreServerAPI api, BlockLayerConfig config, RockStrataConfig rockstrata, LCGRandom rand) à Vintagestory.ServerMods.WorldGenStructuresConfig.Init(ICoreServerAPI api) à Vintagestory.ServerMods.GenStructures.initWorldGen() à Vintagestory.Server.ServerSystemSupplyChunks.LoadWorldgenHandlerAndSpawnChunks() à Vintagestory.Server.ServerMain.EnterRunPhase(EnumServerRunPhase runPhase) à Vintagestory.Server.ServerMain.Launch() à _aZ2fvA6N0dSuJcMaBGoJm3sgDNM._lHZsoVxkJ5SHBBeifPpkH8BnMus()
  9. I tried the mod with default caves turned off and noise caves turned on. 384 world height. I spawned in water with no land in sight as expected . I experienced a lot of lag inside caves, even way after the world should've finished loading/generating. Initially the world map appeared to be filling in very, very slowly after a teleport. The first noise cave I found was a two blocks high, amost completely flat area, it didn't feel very cave-like. As Thalius reported I kinda had to dig to find one. Then with more digging I found a large cave, a big wide open space. It was pretty cool since there was a big underground lake and a lot of stalagtites/mites, but it kinda lacked variety in a sense, I could see that kind of cave get old fast if they're all more or less the same model. I triggered one cave in. The cave's ceiling collapsed in an exact square shape, some randomness to the shape could be needed so it doesn't feel artificial. One thing I'm wondering about (just thinking out loud here) is whether preexisting caves should collapse that easily, just by mining a few protruding ore blocks on the ceiling? Getting cave-ins makes more sense in my mind when digging through previously undisturbed rock. EDIT: I was wondering if you had looked into the Perlin Worms technique of generating caves. From what I understand it's used by Minecraft, but Vintage Story went for something else involving a bunch of trigonometry? I wonder what's behind that technical choice.
  10. EDIT: While I'm at it, I'll link my cave ventilation ideas/research that I posted shortly before the split: There is no such thing as too many waterfalls . Especially when combined with "lavafalls", yielding the most gorgeous caves in Minecraft. I'm sure a separate sound fix mod can easily be made. On that note, since you're making spelunking more dangerous and realistic, making water no so easy to block off with a piece of dirt would really change exploration. Submerged tunnels sections (siphons) you have to swim through would also be quite amazing. Imagine swimming through one of those to find an ancient gathering site with cave paintings...
  11. I've been thinking that instead of reinventing the wheel, integrating with the open source Vortex mod manager or Mod Organizer 2 might be a good idea. Vortex can probably work with minimal configuration. Of course each save auto loading the mods it depends on would be awesome, but it doesn't fully solve the question of managing various mod profiles.
  12. The spawning logic is definitely one of the weakest points of this game. There's no way to make a safe building in wolf spawning areas, for instance. Wolves will spawn right into your little hovel, sometimes very close to you. It causes players to avoid wooded areas altogether. And yeah, the constant spawning in caves is an irritant as well as being immersion-breaking. Those kind of factors caused my group to abandon survival mode and only play in exploration mode. At least this way the mobs have low agressivity and don't swarm you as much - though we still die to high-level drifters when wearing primitive armor
  13. It's really cool that you added gases simulation to the game. I'm thinking that the players will need some way of mitigating the danger of those gases which might otherwise make cave exploration near-impossible. I did some research, and curiously the most ancient way to ventilate mines was to light fires at the bottom so that the heat would create a ventilating draft. At the beginning they used brushwood fires. During the 19th century, the same principle was still in application in the form of large furnaces with a dedicated shaft, with openings that could be adjusted to control the ventilation. I imagine it will be a challenge to integrate into your simulation, but since we already have fires and furnaces in the game, these would seem like the ideal tools to evacuate gases. There's also the good old canary in a cage, which gave an early warning of toxic gases when it stopped singing, since it's more sensitive to them than humans. Not that I would enjoy doing this to a poor canary, even simulated, but it would be a nice touch of realism. Since you're simulating gases, more elaborate water than what the game has now doesn't sound too far-fetched? From my readings it was the other big challenge when mining - and since we have mechanical power, pumps to evacuate the water could easily be a thing. I guess the first step would be to make water less easy to block off with a single block - blocks newly placed in water should be tested against adjacent pressure or something, before "solidifying". And perhaps discrete water can be simulated in the same way as discrete gases - though pumping out infinite flowing water sounds closer to real-life challenges than eliminating a set amount. Those are ambitious ideas, so if not already I hope you make your mod open-source so your work can inspire others and so you can find contributors, at least for bugfixes . Besides the already suggested rope arrows, water arrows to extinguish torches would be cool. I don't know if PvP servers are a thing but it would be an obvious application. Otherwise, it could be used for a future stealth system like in Thief games. Same with noise arrows to attract monsters away from you.
  14. Well, it seems to me that the best for modders would be if you regex search and replace every "internal class" in a Vintagestory.*.NoObf.* namespace, to put the public keyword instead of the internal keyword. And then use this principle for future classes. Since you never know what modders might need to monkey patch. If you're asking what I need for my specific project, I'd rather hold on and make a list that's as exhaustive as possible, so I'll get back to you. But the initial intent of this post was to make a request that benefits everybody, not just me. BTW here are my various attempts to work around the internal class and unregister GuiDialogDead's tick function, if anyone is curious: Manual patching approach, "works" but doesn't skip the constructor body as expected. Most likely fails because constructors are a strange beast to patch: public static class Patcher { public static void DoPatching() { // Apply all attribute-driven patches var harmony = new Harmony("multispawn"); harmony.PatchAll(); // Manual patching required to get to the type, since typeof doesn't work with internal types from other assemblies // However, it seems to fail to properly skip constructor body. var type = AccessTools.TypeByName("Vintagestory.Client.NoObf.GuiDialogDead"); var constructor = AccessTools.Constructor(type); var prefix = AccessTools.Method(typeof(Patcher), nameof(GuiDialogDeadConstructorPrefix)); harmony.Patch(constructor, prefix: new HarmonyMethod(prefix)); } static bool GuiDialogDeadConstructorPrefix() { return false; } } Various failed attribute-based patches: // Doesn't work because type Vintagestory.Client.NoObf.GuiDialogDead is internal. [HarmonyPatch(typeof(Vintagestory.Client.NoObf.GuiDialogDead))] [HarmonyPatch("GuiDialogDead")] class PatchGuiDialogDead { } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Custom attribute to allow class to be looked up by string name, doesn't seem to be picked up correctly by Harmony public class HarmonyPatchStringTypeAttribute : HarmonyPatch { public HarmonyPatchStringTypeAttribute(string typeName) : base(AccessTools.TypeByName(typeName)) { } } [HarmonyPatchStringType("Vintagestory.Client.NoObf.GuiDialogDead")] [HarmonyPatch(MethodType.Constructor)] class PatchGuiDialogDead { //Attempt to skip whole constructor body static bool Prefix() { return false; } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Attempt to unregister GuiDialogDead. Doesn't actually destroy the gui, probably because it's kept alive by tick/callback registrations. [HarmonyPatch(typeof(GuiManager))] [HarmonyPatch("RegisterDefaultDialogs")] public class PatchGuiManager { [HarmonyPostfix] static void Postfix(GuiManager __instance) { ClientMain client = (ClientMain)__instance.World; var guiDialogDeadType = AccessTools.TypeByName("Vintagestory.Client.NoObf.GuiDialogDead"); List<GuiDialog> loadedGuis = Traverse.Create(client).Property<List<GuiDialog>>("LoadedGuis").Value; var guiDialogDead = loadedGuis.First(x => x.GetType() == guiDialogDeadType); Debug.Assert(guiDialogDead != null); client.UnregisterDialog(guiDialogDead); } }
  15. Simply put, I'm trying to create a mod that modifies quite a bit how spawn points work, and this involves monkey patching Vintagestory.Client.NoObf.GuiDialogDead so the constructor doesn't register callbacks and ticking - this way I can replace it with my own GUI. Unfortunately this is made very difficult by this type being internal to the dll and therefore much harder to monkey patch - the type isn't available to use in Harmony annotations, for starters, and you can't use it in a postfix method signature for easy access to properties and the like. So I'd like to humbly request from @Tyron and the dev team that they set all such types to be public. Given that we have the API interfaces to keep a clean separation between dlls, I don't think using internal should be all that important? Thoughts welcome.
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.