• Content count

  • Joined

  • Last visited

Community Reputation

2,084 Excellent

About JohnWatson

  • Rank
    Senior Member

Recent Profile Visitors

5,083 profile views
  1. hey john since net neutrality is going to die can you make a mod to repeal resource neutrality i really hate how i can hit a tree 15 times for a whole three logs without paying a fee

  2. Yeah, the extracted scml animations will be flawed with krane, no way around that, it's actually easier to just make your own animations from scratch When you do want to make your own animations, there are some rules to follow to avoid having weird unintended results. I can't really remember them too much, but there are some animators that do remember them.
  3. don't manually download DLL files, that never fixes anything
  4. How old is Wendy?

    depends on your preference
  5. Disable Auto-complete

    Version v3


    Steam Workshop Version: Disables the ultra gay annoying auto-complete feature
  6. So you make your first mod, and it works just fine. However, you find out soon, either by yourself or from other users, that your mod is completely broken and ceases to function when you're playing with caves. Either it crashes, makes players have weird stats, messes up the crafting recipes, shows the sandstorm effect, or just isn't doing what you intended. But why? It just worked fine without caves, so what's wrong? The truth is, if your mod is having those issues, then your mod doesn't work at all. It's written incorrectly, and it only worked for you because you've tested it under very specific circumstances. I've seen this problem in countless mods from the workshop, usually from new modders, but sometimes I've even seen this in the Top 3 mods of the week. So, what's the issue? The issue is that you wrote a mod that only works on the server. That means it only works for the server and only the server. If other players joined that server, then the mod won't work for them. Those players are clients. To simplify the difference between servers and clients: Servers host the game, and clients play the game. The server and the client don't know what each other knows, so they need to communicate. Information available for the server is not immediately available to the client, and vice versa. For example, the server has access to any entity's components, such as 'health', but the client doesn't. That's why players can't know how much health mobs exactly have, because that information is inaccessible for them. If your mod is working only if you're hosting a world without caves, then that's because hosting a caveless world works differently from hosting a world with caves. When you host a world with caves enabled, then you're playing on that world as a client. However, when you host a world with caves disabled, then you're playing on that world as the server itself. That is why I highly recommend testing your mods in a world with caves as it allows you to know if it works for clients. Do you notice how a mod can either be a Client_only_mod, a Server_only_mod, or an All_clients_require_mod? A client-only mod is a mod that is supposed have client-sided code, such as Minimap HUD or Geometric Placement, and you can see them categorised as 'Client Mods' in the game. Server-only and all-clients-require mods are both categorised as 'Server Mods' in the game, but there's a difference between the two. Server-only mods are supposed to only have server-sided code, but all-clients-require mods can have server-sided and client-sided code. Server-sided code is different from client-sided code because, again, servers and clients don't know what each other knows. Clients don't have access to an entity's components that the server handles, and the server doesn't have access to a client's HUD elements. So how do you separate server-sided code from client-sided code? You can use TheNet:GetIsMasterSimulation() or TheWorld.ismastersim for this purpose: --'Server and client code here' if not TheNet:GetIsMasterSimulation() then --'Client-sided code here' end if TheNet:GetIsMasterSimulation() then --'Server-sided code here' end There's more to this, I'm mainly trying to explain basically why a lot of mods have the 'can't work with caves' issue and how you can fix that issue for your mods. You can look up guides on how to do things like having your mod make the server and the client communicate with each other using netvars and RPCs. And again, I really recommended testing your mods in a world with caves enabled to see if they work. Note that I'm not an expert or anything, just my attempt at helping. If you see mistakes or misinformation, please tell me below.
  7. wear a chest item to drop it perfectly at your feet
  8. Post-Forge UI is horrible

    According to Carl, the main menu animation is literally ~8.72 frames per second. The Forge's mainscreen animation can go 60 fps and above because it's animated in a different way.

  10. AnimState

    you can try entering this into your console for k,v in pairs(getmetatable(ThePlayer.AnimState).__index) do print(k,v) end
  11. Post-Forge UI is horrible

    i want the backgrounds from closed beta back
  12. oh, my mistake, just change this self.task = self.inst:DoPeriodicTask(self.tickperiod, function() self:OnTick end) to this: self.task = self.inst:DoPeriodicTask(self.tickperiod, function() self:OnTick() end)
  13. Events

    i wouldn't use events for that, if what you're trying to do is checking if a follower has a leader, you can use inst.components.follower.leader instead for example: if inst.components.follower and inst.components.follower.leader then print(" has a leader") end