1. Hello,
    So today I decided to put some time into learning how to code oxide plugins.
    The normal thing to find when coding in LUA for something like Oxide is a decent wiki, that's how I always learn. The problem is that the current wiki is totally outdated, everything that is explained there it doesn't work, even copied and pasted, even the small tutorial to get started is outdated.
    Maybe it's just me but here's an example of what I mean:

    The tutorial says it's like this:
    Code:
    self:AddChatCommand( "test", self.cmdTest )
    But it's actually done like this:
    Code:
    command.AddChatCommand("test", self.Object, "cmdTest")
    I found that out by reading other people's code but that's a really slow way of learning.
    So my question is: Is there any good wiki were I can learn? Google didn't help.

    Thanks,
    TheDegree0
     
  2. Wulf

    Wulf Community Admin

    There is no wiki for Oxide 2 yet. Once it hits a full release (not alpha) and the site is redesigned, there will be a wiki/library for it. The current wiki is only for Oxide Legacy.
     
  3. Thanks for the fast reply.
    So the only current way to learn is to read other people's code?
    I was expecting to support the community by adding more plugins to the list but if it's going to take ages to learn I think it's not worth it.
    Kinda disappointed, I was excited :(
     
  4. Wulf

    Wulf Community Admin

    Most of what is involved with developing plugins is basic Lua skills, knowing what hooks exist, and having a decent .NET decompiler (ex. dotPeek) for digging into the Rust DLLs to find methods to use. The Oxide 2 hooks are all documented, but much of what is done via plugins is just Rust functions and such being called, hacked, modified, etc.
     
  5. I was checking the Rust DLLs thing, those methods can also be used in Oxide 2? Or I have to compile my own DDLs?
     
  6. Wulf

    Wulf Community Admin

    Most things in the Rust DLLs can be accessed if they are public. This includes pretty much all of the global variables and many other things.
     
  7. Awesome, so the server itself is kinda like a framework, I suppose that I can also use their global functions.

    Thanks for your help!
     
  8. Wulf

    Wulf Community Admin

    Somewhat, but the issue with using it is that it can change with any update, so it'd be nice to have a bit more of an API setup with Oxide 2.
     
  9. I could code that, it would need a really good documentation after it's done do.
    I mean, that is already implemented in Oxide 2. It could even have a web API for external access coded with Django + Python
     
  10. Wulf

    Wulf Community Admin

    I'd suspect it'd be best to have any sort of web server separate as an extension, similar to how Lua, Rust, and the other extensions are.
     
  11. From Oxide or contributed by the community?
     
  12. Wulf

    Wulf Community Admin

    Most likely community ones. There are a couple that a few community members have been working on already, but nothing for a web server yet. I imagine it wouldn't be too hard to wrap nginx or some other basic web server.
     
  13. Not really, use Django and be welcome to the real world ;)
    (Matrix reference there, call me a freak)
     
  14. Wulf

    Wulf Community Admin

    I imagine a more universal web server would be better, as not everyone would want to use Django. The good thing though, is that anyone can make an extension, so there could be both.
     
  15. It's not a web server, it's a Python web framework. You won't reinvent the wheel with that.
    It can run on any web server
     
  16. Wulf

    Wulf Community Admin

    Correct. Just saying that it'd be best to have a lightweight web server, then anyone can pick what framework they may want outside of it.
     
  17. Like that the users would have to code their own API, that would mean reinventing the wheel every time. I think it's better a plug and play.
     
  18. Wulf

    Wulf Community Admin

    No, anyone could make a drop-in framework for the web server. Having it bundled as an extension would be best for that as well. The purpose of the webserver, is that it could be used for a lot more in addition to your suggestions.
     
  19. Oh I see, an extension of an extension. As you said there could be both, to use the default one or you could make your own.
    I still think that the basic API (not the web one) should be provided by Oxide, a must have.
     
  20. Wulf

    Wulf Community Admin

    Right, the API would be provided by Oxide, but things such as the web server should probably remain separate as an optional extension DLL.