• Content Count

  • Joined

  • Last visited

 Content Type 




Klei Bug Tracker

Game Updates

Hot Lava Bug Reporter

Status Updates posted by CarlZalph

  1. It feels weird having a 3 year old mod get deprecated by it being integrated into the base game.

    1. ShadowDuelist


      I'd take it as a recognizing from the devs that the mod was so good that it had to be a part of the game.

  2. Quote

    local cz_griefers_blacklist = {
        --["KU_bbC_qbDn"] = true,
    local cz_griefers_items = {
        torch = true,
        hammer = true,
        firestaff = true,
        yellowstaff = true,
        lighter = true,
        blowdart_fire = true,
        greenstaff = true,
        staff_tornado = true,

    function cz_getallclientdata()
        local ret = {}
        local ct = TheNet:GetClientTable() or {}
        for _, playerdata in ipairs(ct)
            local userid = playerdata.userid
            if userid
                ret[userid] = playerdata
        return ret

    local function cz_check_griefer_hands(hands)
        if hands == nil
            return false
        for baditem,_ in pairs(cz_griefers_items)
            if hands:find(baditem)
                return true
        return false

    local cz_griefers_dataold = {}
    if cz__ongriefercheck ~= nil
        cz__ongriefercheck = nil
    cz__ongriefercheck = scheduler:ExecutePeriodic(
            if ThePlayer and ThePlayer.components and ThePlayer.components.talker and ThePlayer.components.talker.Say
                local cz_griefers_datanew = cz_getallclientdata()
                for userid,datanew in pairs(cz_griefers_datanew)
                    if cz_griefers_blacklist[userid] == nil and datanew.friend == false and datanew.playerage < 100
                        local dataold = cz_griefers_dataold[userid] or datanew
                        local newhands = datanew.equip[3]
                        if dataold.equip[3] ~= newhands
                            if cz_check_griefer_hands(newhands)
                                ThePlayer.components.talker:Say(string.format("%s\n%s\n%s",, userid, newhands))
                                print(string.format("[AntiGrief] %s %s %s",, userid, newhands))
                cz_griefers_dataold = cz_griefers_datanew

    Reposting here because initial thread where I did post this in was hidden/removed/etc.

  3. I see you haven't been here in a while, but congrats on second place for the RoR2 art event.

    1. CarlZalph


      Welcome home.

    2. spiderdian


      Haha. I surprised that someone here would have seen it.

      Most of my time is spent on discord now. :lol:

  4. Noticed that you can set arbitrary physics meshes now in DST with SetTriangleMesh.

    Was seemingly added when boats were added, very good feature.


    From my tests it doesn't seem to operate on a triangle strip, but rather requires 3 points per triangle, or 9 coordinates passed, in an ipairs table to function.

    1. Show previous comments  6 more
    2. IronHunter


      Hmm, so 2 things then need to be experimented with. Triangle rendering of simple shapes and particle line rendering.

      Would it be ok if I add you on steam to continue discussion and development of something? I have not a lot of free time thanks to all the overtime of being a health care worker. But I still tinker on my own mod stuff in my spare time.

    3. CarlZalph


      Go for it.

    4. Mobbstar


      Using triangle mesh for 3-D obstacles is a clever idea.

      I looked into rendering lines before, but couldn't figure out any reliable, halfway runtime-bearable way to render lines between points (unless they are on the same world height, in that case set a single instance to orientation.onground, rotate and scale)

  5. waxwell.gif.e5c854bc7f36e66e52fa362b4f06b9f8.gif

    Made a physics thing that tries to find approximate points in an input image that could happen such that there's no two points too close while also maintaining as high as possible density given the starting state.

    Due to the nature of the random starts, the points will always jiggle around for every outcome.

    A practical use for such technology:


    1. Show previous comments  4 more
    2. CarlZalph



      I had to add the rest of his top horns and clean it up so the generator knew where to go properly.  Effectively tracing it, so I take no credit for it.

    3. minespatch


      He looks so evil in that despite being a cute late night comedian.:wilson_ecstatic:

    4. CarlZalph


      Hexagon packing seems to be better.  Did some more cleaning up and selective removal.  Not on an endless, generated in but could be built on any server.


  6. Do you like twinstick shooters?  Have a controller?  Love beta testing?

    If not all of those, then I wouldn't bother.  I liked it, despite the shortness of the areas being tested.

  7. DST Player stats as of ~10:45PM EDT:


    1. minespatch


      That's a lot of modded characters.

    2. CarlZalph


      It is.

      Server stats for that same sample:


      And modded character prefabs (>= 1%):


    3. minespatch


      OH yeah, that journey to the West mod.

  8. image.thumb.png.85ce1feb7788a65dcf919ab90866241a.pngAdded entity density overlay, lunar tiles, and ocean tiles to my save file renderer.

    It's a big image, may need to zoom in.  Scale factor at 4:1 such that all walls show up on turfs.

    1. minespatch


      Is this for a DST mod?

    2. CarlZalph


      It's an external C program using libpng to generate out the image based on the passed save file input.

      It also generates out the other layers:









  9. Blender.  Thanks to v2.8, it feels more natural and sane to use.

    I worked on making a human male model which I exported out to Diablo 2's dimension specifications.  The tile the model lays on is the tile size the game uses.  The height and overall size of the model is bigger than the other humanoids in Diablo 2; this deviation is intended.

    So here's a progress of it from first quick rough start to good enough to pass for how much detail Diablo 2 had at the time.

    armless.gif.2dc613354fa404bd71235ef29d856116.gif Armless, primitive.  Legs bend weirdly.

    armless_subdivide.gif.d4460d4c71364c0ff62abc19951baa81.gif Blender's subdivision on the model, neat feature: 10/10.

    armless_refined.gif.314a2ecde34fd700679fffbcdf8e811a.gif Fixing the general overall posture and adding some details.

    arms.gif.6e32ddd94b84deb75fb5c78da0be3320.gif He has the arms, finally.

    arms_face.gif.08534195b867f10b6f6c48f0ba3d960e.gif More tricks to play, face and other small details made.

    muscles.gif.c9b88c1ae6548e58ba297717cae76665.gif He hit up the weights and buffed up.


    Armatures, animation, rigging, etc.  That is going to take some time to get used to, I'm sure.

    1. CarlZalph


      cycles.gif.c1399ab921016ba0fd2a90a225284f92.gif Maximum dimension rectangular prism with square pyramid top.

      Notice how with 2:1 ISO the peak of the pyramid coincides with the edges at the top, always.  This is the maximum height I'll be allowing for any given model since they're going to be exported out as sprites.

      The human bounding box is the one in the middle, and the center one will be for lamp posts and other skinny objects.  The big short one will be for structures, and I'll get them in a stackable formation.


      Here are some 2:1 ISO cuboids I made for references.


      The Diablo 2 Druid entrapped in a scale measuring device.

      My human model is about 20% taller, but not much wider.

    2. minespatch


      Dammit Klei, give me a wow react for this guy.

    3. Mobbstar


      I was dabbing into Brigador modding, this stuff here is very helpful thanks

  10. Steam beta has a new feature that lets you play with other people as if they were also there, using the same input systems as you.  Shared keyboard/mouse/controller.

    More info at:


    Downside is that it only works for games that are flagged for local coop and have had the a-okay from the publisher to let it be done.

    Well, that's the alleged restriction.



    Steam games need some magic applied to function, but non-Steam games are very easy to do.

    1. Mobbstar


      But we know, most of you came here for one thing. I think it's to see where we're porting Skyrim next!

  11. image.png.6bc8c37fe008f3a3c92041be73feeaa7.png



    Just posting for the gaggles and jiggles.  And a recorded timestamp for the inevitable to come.

    1. Show previous comments  1 more
    2. Mobbstar


      Are you sending skin requests to achieve these things? I don't think a "The World" skin request would work at all. Whatever you do, it's amazing.

    3. Starlogy


      is that a JOJO reference?

    4. minespatch
  12. People in the ONI subforum gettin' a bit too rowdy, eh?

  13. Sometimes I wonder if Klei made Wormwood not take health damage so that way PeterA can eat all of the red caps he wants to on streams.

  14. Win10's scrollbars.  0xCDCDCDFF on 0xF0F0F0FF.  Minimum 17 height x 15 width pixels.

    Here it is with different colours next to it.


    I hate these things.

    1. Maximum101


      I guess the color/style could change, but what's so bad about the scrollbars?

    2. Mobbstar


      I like the simple design more than he clunky looking WXP ones, but an option to improve contrast would be nice.

    3. minespatch


      What happened?

  15. It makes me wonder if anyone says 'Warbucks' anywhere on here and JoeW'll be there to keep the peace.

    1. CarlZalph


      24h later and the entire subforum is just a swarm of joke threads and vitriol.

      Sorry, JoeW/mods.

    2. minespatch


      Well... Hopefully it calmed down by now.:wilson_dorky:

  16. Merry Christmas, Joe.

  17. I've decided it.  I'm going to learn Go as a programming language.

    Installed and things are functional.  Play time.

    1. Show previous comments  10 more
    2. Mobbstar


      So... "panic" is just what other programming languages call "throwing an error"? Or does it automatically look for the next Catch in the traceback and skip functions without any?

    3. CarlZalph


      They're similar but the cause is different.  You are right in that it will skip all code until it hits a recover if one exists.

      In other languages you'd put the 'unsafe' code in a block and catch errors.  In go you're meant to handle each error explicitly for each function that can have an error, like in C.

      In go you can recover from a panic anywhere so long as you have a function that tries to recover somewhere in the stack.  This allows recursive functions to throw out a panic and to be caught from the start as it unwinds the stack back to the caller.

    4. CarlZalph


      Wrote a UDP Proxy for use with Man-in-the-Middle attacking myself.  Already had one written in C, but that's not quite the point of me learning a language!


      • In C you're probably working with BSD-like sockets directly as I was.  In short, it's a lot of setup work to be done to make it work.
        • In go it's cut down a lot of this by having a 'socket' be a 'connection' that you either 'listen' from or 'dial' to.  You then read/write to these connections with all of the underlying socket layer abstracted away.  This is an upside of go.
      • In C buffers are usually malloc'd to remove them from the stack and onto the heap.  Or if your program is performing under memory constraints, then a memory pool is utilized.
        • In go there's no real preallocation- memory management for the programmer is nonexistent.  If go can't allocate the required memory behind the scenes, then the program must terminate and there's no going back.  This is a downside of go.


      • In C sockets should be placed on their own thread because network read/writes are blocking.  Probably with pthread under *nix-like environments.
        • Go routines.  Threading with low effort and high code readability.  Go does it better since it has innate threading.
      • Performance is about the same after profiling each.  It's a simple task really.
      • Signal handling is *nix-like, and has about the same amount of 'boiler plate' code required to make them function.

      All-in-all I'm quite happy with how much less code was required to write it, but that's more running along the lines of the language itself having such abilities prebaked, and C needing libraries.  Really like the performance being very similar.  Dislike the memory explosion possibility in go where there is no upper bound limits being able to be set before hand- this sort of kills go for anything with high memory constraints.

  18. Never realized that the smoke from the Shipwrecked volcano was another overlay until I started messing with the other similar overlays introduced in Hamlet.

    It's been a long time since SW came out and yet neither I saw it nor anyone said anything about it.

    1. Mobbstar


      What overlay? You mean the black fx above the zoomed-out volcano?

    2. minespatch


      Can you explain?

  19. Too many closed doors.

    1. Show previous comments  1 more
    2. minespatch


      What's the context behind this status?

    3. CarlZalph


      Doors.  They let one in or keep one out.  Alas, the last door mentioned closed shut after teasing its contents.

    4. CarlZalph


      No, I'm not locked in an enclosed area or suffering from a mental breakdown or what have you.  Couple of people asked me directly on other mediums if I was alright with those specific worries.

      Right place in heart so thanks to those individuals, but allow me to allay future fears.

      The doors are just metaphors for opportunities.  Opportunities when they reveal themselves will either let someone to go into them or shut them out, much like how doors work.

      In my case here there seems to be so many opportunities that I merely cannot access yet, and this was a venting of some frustration of it.  Then my hopes got raised when another similar opportunity came along but alas!  Fidgety little bugger eludes me once more.  This is fine.  More will come along in the future, and I won't let the missed deter me from getting more.

  20. It's ImDaSisterL, yeah?

    1. ImDaMisterL


      You almost had it

    2. CarlZalph


      Etched in stone it is!

  21. For those using my file structure for dynamic keybinds, the game update from today put a restriction on a filepath directory.

    Move the 'DST_Scripts' folder into the DoNotStarveTogether folder and edit the root customcommands.lua file to use "../DST_Scripts/" as the path, instead of "../../DST_Scripts/".


    I would put this in the thread that has it, but it's so old that it's archived.

    Putting it here so perhaps maybe someone somewhere will see this and find it useful if it's applicable to them.

    1. Mobbstar


      ask joew or a moderator like MrL to unlock

    2. ImDaMisterL


      Ask JoeW if you want, mods still don't have the ability to unarchive topics :(

  22. Not sure why I feel a desire to help people when they don't ask for it.

    So much time spent on others when I could have merely done it for my own benefit.

    What a waste.

    1. CarlZalph


      Note that this isn't an attempt at being passive aggressive, just a venting.

      Please forgive my statements here if you take offense to anything or if I seem very negative.  Just tired of many things.

  23. Hope all is well.

    You were a large driving force to get me to spew code out in the Mods and Tools subforum before you could do the same.


    1. DarkXero


      All is well.

      Thank you for your kind words.

  24. 33wQETd.png

    Party noises, I suppose, are appropriate for this event.