Modding Discussion Modding Framework / API Issues

Discussion in 'Starbound Modding' started by kieve, Dec 10, 2013.

  1. kieve

    kieve Intergalactic Tourist

    After spending several hours with an idea in my head, but unable to express it in Starbound, I thought it would be useful to collect a list of thoughts about the current modding framework. Where things are done right, and where improvements could be made.

    For now, here's just a brain dump. I'll add stuff that's suggested from the thread.

    The Good:
    • The file structure (assets) is organized quite well, easy to find what you need.
    • Mods that add content that behaves similar to the current game is very easy to create.
    • Since much of the game is implemented in the modding API, it provides a large base of good examples.
    • Mod installation is very clean, and allows you to avoid editing the original game files. (Asset paths)
    The Not-So-Good
    1. Logs aren't written out until the game closes. You can't do stuff like tail the log while testing.
    2. You must do a save reload to test changes. This becomes time consuming.
    3. (Currently) There's no API documentation.
    4. Limited interaction between objects and Entities. Almost any object outside the current context is read only. (Also, apparently techs run in an isolated sandbox. Why?)
    5. Cannot define our own user interfaces and their interactions.
    6. The "types" of objects, such as wire, farmable, tech, etc, forces strict rules about the objects. Limits customization.
    7. The way config files interact (replace, not merge) makes it difficult to combine many mods.
    Potential solutions:

    1. Easy thing here. Clearing when the game starts, appending as events happen.
    2. Obviously scripts are parsed at load time, for performance reasons. Having a debug flag that causes scripts to be parsed real time would allow many iterations of changes to be tested quickly.
    3. Self explanatory.
    4. Being able to convert an EntityID to a reference to the actual Entity would help this immensely.
    5. Adding an API to support this would obviously solve the problem. Would be awesome to build our own "crafting" machinery.
    6. I have no suggestions for this. It's really a design decision.
    7. Being able to define "patch files" of sorts, that modify the config files. For example, defining a way to simply add items to a specific tier.

    It's very obvious that this is an early beta. We should work together to make modding as enjoyable as possible for all people involved.
     
    Last edited: Dec 11, 2013
  2. MorpH

    MorpH Subatomic Cosmonaut

    Good points, I agree we REALLY need more documentation for the API, the current functions list on the forums helps but it's not really enough to go on.

    Ever since /reload was taken out this has been an issue, BUT starting a dedicated server acts the same way when you leave/rejoin, the mods will be reloaded. Way easier then restarting the game. Just a tip for you!
     
  3. madtulip

    madtulip Phantasmal Quasar


    yea but they will be reloaded from the cach of the server and not compleetly parsed again from file.
     
  4. MorpH

    MorpH Subatomic Cosmonaut

    I've been doing this and every change I make still reloads when I leave/rejoin so it works, not sure what you are getting at?
     
  5. kieve

    kieve Intergalactic Tourist

    I've started just reloading the save. It appears to work fine. I suspect it may not reload all aspects of the game configs though.
     
  6. MorpH

    MorpH Subatomic Cosmonaut

    The removal of /reload was really dumb on their part. I can agree with removing the "cheaty" commands, although you can mod in cheaty stuff anyway so why did it matter? Who knows.
     
  7. Supergeek

    Supergeek Scruffy Nerf-Herder

    Because it wasn't reloading everything. It was an inconsistent way to test mods.

    And calling something dumb that you don't know the reasoning behind... is dumb.
     

Share This Page