• Content Count

  • Joined

  • Last visited

 Content Type 




Klei Bug Tracker

Game Updates

Hot Lava Bug Reporter

Everything posted by Muskar

  1. I certainly have a lot of things to learn still, but I probably wouldn't be here if I weren't interested in making this specific mod, so that'll continue to be my ambition. I'd rather start with aiming for version 0.1 and then working toward 1.0. It's far too early to talk about a version 2.0. Or talking about fears before I've even seriously begun. This is a project I'm doing for fun, so as long as I enjoy working on it, I'm doing it the right way. That's how I see it. Anyway, I'm certainly counting on looking into Rezecib's Combined Status mod which I think hooks into a lot ot things I need. At this point, I'm still figuring out how to figure things out. Thanks for recommending Serpens, I see they made many mods, so I'll keep them in mind.
  2. Nope. I'm the only person in the world with my name so there's no hiding from my Danishness :P Thanks for the advice. I'll definitely take note of that. I want it to be a client-mod exactly for the opt-in reason. Basically, my ambition is to create the tutorial that I feel a great game like this deserves. For many games there's only a minority who will opt-in for support features etc. but this is a hardcore game that seemingly scares away a lot of people who are not comfortable doing trial and error, and I want to do what I can to remedy that without ruining (imo) the spirit of the game like making the game super easy like most mods do. My initial goals have been readjusted a bit after working with the (frankly) lack of documentation, so now I just want a few basic quests to work and judging which fundamentals are easiest to figure out on the fly.
  3. Doesn't seem to work for me. I get the following result in both Chrome and Firefox - no button appears: What am I doing wrong? Also, perhaps in the Debugging section you could add a small section about writing out tables in runtime via a table serializer like serpent or others - noting licenses are worth keeping an eye on etc. I've only tried serpent but it helps greatly with the followings options: local serpent = require "util/serpent" --put serpent.lua and license in "util" folder in the mod --... print(serpent.block(table, {metatostring=false, maxlevel=3, maxnum=50, nocode=true})) -- don't set maxlevel very high when metatostring is off, otherwise you'll likely run out of memory
  4. I did the same thing until I spent around 30 minutes and then thinking to myself that I probably wasn't the first person to want to serialize tables in lua for debugging XD Serpent is an extensive library. E.g. it prevents circular references and supports __tostring and __serialize too if you want it to, and long list of other things like sorting and byte handling etc. Hehe, sound a bit like a commercial, but there's a long list of options and I just picked one that was recommended and it gets the job done for what I need at the moment.
  5. Wow that's some great info. I feel like that dstNetTest.ods table could be turned into a great flowchart, but I'm trying to minimize yak shaving. To add to your tips, I've been using the serpent lua library with the following settings to print out serialized versions of nested runtime tables (aka lua objects): print(serpent.block(obj, {metatostring=false, maxlevel=3, maxnum=50, nocode=true})) Just add the following to the top and put the serpent.lua file (and license file) into a "util" folder in your mod: local serpent = require "util/serpent" I just feel like I need to improve my debugging methods, because I'm usually spoiled with an actual debugger to step through code and look at variable values at break points. But I think I'm making progress. The biggest hurdle was to actually get a barebones mod to even work in the first place when the official sample mods didn't work. Anyway, I digress... I'll probably see you around
  6. Thanks, that's good to know. If you must know, I'm doing a UI mod. Essentially a questing mod but more like a tutorial assistant with progress and suggested solutions to problems previously faced, but no rewards beyond the inherent experience of being better at survival (aimed at more casual players). So not anything related to this topic. I'm just trying to get a better grasp at how things work and speed up the tedious task of looking through the entire source code to understand how to accomplish a long list of basic things. And I've only been able to find one related mod which was abandoned and not that close to what I want to do.
  7. Much appreciated. Just to clarify, so I searched scripts for :PushEvent("itemget" and found Container and Inventory to be the sources. How do I determine that they're server-side components? I feel sort of clued in by the fact that it contains logic that a client has no business deciding. But can components never have both a client and a server side? I'm surprised there's no further documentation than the few scattered tutorials. Something sort of like this. There seems to be a fair amount of activity here, so it seems warranted to do. Down the line I'd certainly be happy to create such documentation to get things rolling a bit more. EDIT: I just realized that my mod is client only, so how do I even have access to this event if it's server-side? That doesn't seem to make sense to me
  8. Yeah, your collection was much appreciated. It was a great relief after finding that most of the other stuff was outdated and no longer working, like the official sample mods. Out of curiosity, I'm guessing that if you copied a character's prefab script, e.g. Wilson, into [YourModDirectory]\scripts\prefabs and then changed that file instead, it'd overwrite the original one, right? If so, that seems like a method that requires frequent mod updates. Isn't there a more longer-term way to only overwrite the specific starting_inv part?
  9. Thanks for the differentiation between server and client, but I'm still not following. Teach a man to fish, right? I'm guessing this means that all the events happen server-side? Are there no client-side events equivalent to getting an item? And how would you figure such questions out without submitting question after question on these forums or reading through many unrelated questions? ...Sorry, perhaps a bit of a loaded question Bare with me, I just feel a little impatient and eager to get to the point where creativity and design are the only limits again. I'm trying to control myself.
  10. Yes, it says as much in the scripts readme and it's pretty obvious too, I'd say. I still have no idea what "the similar files in a character mod" means. Do you have a thread to refer to, to get the knowledge that you seemingly assume your audience has?
  11. I get the following error when I run a barebones mod: Here's the code: AddPlayerPostInit(function(player) GLOBAL.ThePlayer:ListenForEvent("itemget", function(slot, item, src_pos) print('HelloWorld heard itemget called') end) --the below code works fine as a replacement though --player:ListenForEvent("itemget", function(slot, item, src_pos) print('HelloWorld heard itemget called') end) end) I've seen this referenced many times in similar fashion so I'm having trouble understanding the lifecycle of these global variables. I thought AddPlayerPostInit was called after the player instance is initialized and that this would also initialize the GLOBAL.ThePlayer reference. I'd appreciate insight into what I've misunderstood. Since I know very little at this point, that's of course going to be a lot, but I intend to create a fairly sizable UI client-only mod so I'm here to learn. I still have a million questions about the API and lifecycle of various things and I'm also wondering if there's any other information available than this forum and the subforum? modinfo.lua
  12. I didn't understand what you meant by "your character's Lua files", so I searched through all scripts for "start_inv" with Notepad++'s Find In Files feature and found out you were talking about 'scripts/prefabs/[character_name].lua'. These scripts are found in data/databundles/ in the Steam directory. How to effectuate the changes with that knowledge is another issue. The readme in the data folder suggests extracting and then renaming the zip file for a temporary pseudo-modding solution. Note, this isn't actually a feature I'm looking to do. I'm just trying to learn through others and share what I can.
  13. Thank you, I didn't even know there was such a section on Steam, and I've been using Steam for 13 years. The More You Know.