StarD - server side wrapper/plugin manager

    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    StarD

    Current Version: Alpha 0.3.6

    Purpose:
    StarD is a starmade server manager intended to function to enhance the functionality of that server through the use of plugins along with general server management.

    The goal is to bring tools to server administrators that allow for easy adding and removing of plugins, as well as giving a very flexible interface for plugin makers to use.

    Features:
    * Provides a plugin clean plugin interface capable of handling:
    - Specific events on the server (if player spawning).
    - Mechanism for launching a plugin based daemon.
    - !<whatever> based command system.
    - Multiple languages (perl is a bit out of favor these days, so other launguages should be supported).
    * Libraries for communicating to starmade, and provide other common features that in starmade's alpha stage should remain stable (using server commands that tend to not change much over time).
    * Plugins do not require any client side modifications.
    * Mechanisms for managing the starmade server, and said plugins.
    * init scripts to allow for easy starting and stopping of the server (regular version only).
    * auto-restart functionality (regular version only).
    * Support for multiple starmade servers running on the same host via the standalone version.

    Recommended system requirements:
    This has been tested, and runs on Ubuntu LTS 14, Fedora Core 21, and Centos 7. It may work on others, however, I make no promises.

    Standalone vs Regular:
    The Regular version will install itself in /var/starmade, and run as the user starmade. This version also includes an init script, and a basic launch command.
    The standalone version will install in your current directory, and is intended to run as the user who installed it, and is fully contained within a folder named starmade along with StarMade. Note that it requires root to install.

    Which is better?

    Depends on your situation. The regular version is likely best for most purposes as it comes with the most features (such as an init script). The Standalone version is good if you want to run multiple servers on the same host or if you don't trust the install script to run as root.


    Installation:
    Regular install:

    1. Download the stard installer: https://github.com/Jeryia/StarD/releases/download/0.3.6/stard-install.sh
    2. chmod 755 ./stard-install.sh
    3. ./stard-install
    # Note this one will want to run as root, or ask for your sudo password as it installsinit scripts, and creates a user (starmade) to run the server as.
    4. It should start once the install is complete, however, you can start and stop it using sudo service stard start, and sudo service stard stop.

    Standalone:
    1. Download the stard installer: https://github.com/Jeryia/StarD/releases/download/0.3.6/stard-install.sh
    2. chmod 755 ./stard-install.sh
    3. ./stard-install standalone
    # Note this one does not require you to run it as root in any way, but will offer to install dependancies for you as root should you want to.
    4. It should auto start, however, you can start it by hand by running ./starmade/stard/bin/stard-launcher



    Documentation:
    How to make plugins, How to install, and general administration:
    Home · Jeryia/StarD Wiki · GitHub

    If anything in that wiki seem confusing or isn't explained very well, feel free to ask! I'm not the best writer in the world, and likely didn't explain it well.

    Want to help make StarD awesome?
    If you wish to contribute code, I'd love the help! :D. Feel free to add to add to the repo, and if you want to do some serious work, pm me and I'll add you to the contributors list.

    StarD is available on github at Jeryia/StarD: A server wrapper around the s... - GitHub.

    Even if you don't want to write code, I'd love to hear suggestions and critiques (as long as they are constructive).


    Bugs
    Feel free to report bugs and issues here or on the issue tracker on github (Issues · Jeryia/StarD · GitHub).


    StarD is open source, and free for anyone to use or modify to their heart's content.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     
    Last edited:
    Joined
    Sep 1, 2013
    Messages
    144
    Reaction score
    70
    • Legacy Citizen 2
    • Legacy Citizen
    • Purchased!
    I'm having to "sudo chmod 777 /var/starmade/StarMade" to edit the configs or transfer bps to the server. Is there a way to stop the server from changing the permissions every time I start stard?
     
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    Looks like I was a little over-zealous on the self healing concept...

    I've updated the master repo to make stard only update the permissions to add access (not remove it). That should fix your issue. This will be a part of the next release.

    To fix this now, you can pull from the unreleased version (it really only contains this change right now) with the following at the terminal.

    Code:
    wget https://github.com/Jeryia/StarD/archive/master.zip
    unzip master.zip
    cd StarD-master/
    ./configure
    make
    sudo make install
    sudo service stard start
    Note that it will stop stard to perform the install.
    Hope that helped! :D
     
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    I've pushed out Alpha Release Canidate 4 with some minor (but necessary) changes. Largely this small update was about fixing permissions if they are note set correctly.
     
    Joined
    Sep 1, 2013
    Messages
    144
    Reaction score
    70
    • Legacy Citizen 2
    • Legacy Citizen
    • Purchased!
    Can you make this Wrapper just sit in a folder that I select? OS drive is slow and i want to run it from the SSD Raid.
     
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    Howdy,
    Currently there are two ways to do that, a source install by downloading https://github.com/Jeryia/StarD/archive/0.0.13.tar.gz:

    Code:
    wget https://github.com/Jeryia/StarD/archive/0.0.13.tar.gz
    tar -xzvf 0.0.13.tar.gz
    cd StarD-0.0.13
    ./configure --localstatedir <insert location here>
    make
    make install
    You'll need to put the StarMade-Starter.jar in <location>/starmade/tools/. You're then safe to start stard. Note that it may take some time to download and install StarMade with the jar before ou can login to the server.

    You can also use the standalone installation described at https://github.com/Jeryia/StarD/wiki/Installation
    With the standalone version you can move stard whereever you want.

    If you perfer I could also modify the installer to allow a installation directory
     
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    There are two different ways. You can run the following:

    Code:
    service stard stop
    cd /var/starmade
    java -jar ./tools/StarMade-Starter.jar -nogui
    service stard start

    or simply delete the /var/starmade/StarMade/version.txt, and restart stard.
     
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    Howdy,
    stard currently offers a backup of the starmade folder by running the stard-backup command. It'll back upt wherever BACKUP_DIR= is set to in /etc/sysconfig/stard (/etc/defaults/stard on ubuntu). This only runs when called (not automatically), however, it would be easy to implement a cron job to have regular backups.
     
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    StarD Alpha 0.1.0 has been released.

    Feel free to download it at: https://github.com/Jeryia/StarD/releases/download/0.1.0/stard-install.sh

    Changelog:
    • Support for multi-line messages with chat commands
    • Update support for StarMade via service stard update-sm
    • Ability to backup and restore entire setup via service stard backup and service stard restore
    • Stuck now teleports a player 300m instead of to an adjacent sector.
    • Workaround so that StarMade no longer takes up an entire cpu at all times...
    • fixed up log rotation
    • added new action stard_countdown
     
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    StarD Alpha 0.2.1 has been released.

    The largest change to this patch is a new plugin loading model. All plugins can now be loaded using in game commands without the need to restart everything.
    The second biggest change is some new plugins that come with the daemon.

    New ingame command for loading Plugins
    Seeing what plugins are available:
    !plugin list

    Learning what a plugin does:
    !plugin info Bank

    Loading a plugin:

    !plugin load Bank

    Unloading a plugin:

    !plugin unload Bank

    Seeing what plugins are available:

    !plugin list

    New Plugins
    Bounty
    Allows players to put up bounties on other players with the !bounty command.

    GodlyAdmins
    Admins get god mode and invisibility on login.

    LastLogin

    Provides a utility for players to check when a given player last logged in using the !lastlogin command.

    Changelog:
    - Fixed issues with stard-multiplexer being unable to launch serverEvents correctly
    - Fixed logging issues with the plugin commands.
    - Allow the loading and unloading of multiple plugins at once.
    - !plugin list now lists plugins in alphabetical order.
    - Moved to new plugin loading model:
    - plugins only need to be in the plugins directory to be loaded
    - plugins can now be loaded and unloaded via the in game command !plugin
    - unloaded plugins go in plugins.disabled
    - all plugins now start in plugins.disabled except for the Base plugin as it provides the !plugin command
    - Plugins now can have a info.txt file associated with them that contains information that !plugin can query for admins to know what a plugin is before loading it
    - Add new plugins(these are all disabled by default):
    - GodlyAdmins - admins get god mode and invisability on login
    - Bounty - allows players to put up and collect on bounties on other player's heads.
    - LastLogin - allows players to check ho long ago a player last logged in.
    - Added the stard_map library. This library allows spawning of stations/ships at specific coordinates from an ini file.
    - General polishing of code. (see github commits for details)
    - Fixed an issue with updating to newer versions of starmade
     
    Last edited:
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    StarD direction
    Currently I'm working toward a few areas with StarD. The primary focus at the moment is on enhancement of survival servers, as opposed to major alterations of starmade's general gameplay (ie the Ares Plugin).

    New Plugin Development
    Currently my primary focus is new plugin development for StarD. Here's a list of plugins I am actively working on or have planned:
    • Marauders - This plugin is intended to make pirates more challenging, by having what they attack with based on how well the player has faired against previous attacks (If they kill you in one attack, their next one will be weaker, and if you kill them, their next attack will be stronger).
    • Arena - Create a sort of free for all area for players to duke it out with their creations without much cost to themselves. This would be accomplished by having a locked sector that players would be teleported into with a blueprint of their choice spawned for them for free. They would not get to keep any items they acquired while in the arena, but should gain some reward for defeating other players.
    Here's some concepts I'm rattling around in my head for potential plugins:
    • A plugin that starts random events. Such as a pirate boss for players to attack.
    • A civilization mod for creating a perhaps opposing factions would offer missions, and perhaps a short storyline. (I'm really curious to see what schema does with npc factions, as he's talked about similar things. Perhaps I'll be able to add to whatever he comes up with)
    • Modifying Ares to offer building materials instead of credits so players would actually build what they intended to attack with. This would come with protected spawn areas so players could build in peace. I'm a bit concerned about the annoyance of emphasizing building in such an event, as I generally assume players would rather be blowing eachother up instead of trying to quickly come up with something to fight with.
    • If anyone wants to add things they want to see, please let me know, I'd love to hear them.

    StarD Core Development
    I've been doing a lot of work to make StarD very robust and stable. Mostly in the form of regression tests (tests to validate that all of StarD's pieces to EXACTLY what they are suppose to under any circumstance).

    I'm also working on trying do lots of testing to find any way to get StarD to break or get into a bad state, and have it fix itself. Although I believe that StarD is very stable in it's current state, I'd like to have StarD be a program that 'just works' no matter what the sever admin or players are doing.

    Plans for moving to Beta.
    Although I don't like the idea of having a program that's in Beta reliant on a program that's in Alpha state. I believe StarMade is stable enough in it's development that it should not adversely effect StarD in the future. In order for StarD to move to Beta the following needs to be completed:
    • StarD should be feature complete. Right now meaning all triggerable events that I can forsee ever using should be implemented.
    • Python Support - No I have not forgotten about this :)
    • Mac Support? I do not promise that this will happen, but I will look into this and see how easily this can be ported to the Mac. If I find that it can be done without major difficulty, a Mac version of StarD will be a part of the Beta.

    As always If anyone has any plugins or thoughts on things that you would love to see added to a starmade server please let me know. I love suggestions! Keep in mind that primarily, I can only add things to StarMade, I cannot modify core game mechanics (like I cannot change the sniper rifle range).
     
    • Like
    Reactions: Zyrr and JimmyJamba
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    StarD 0.3.0 has been released.

    This update is a large step toward the Beta version, as it finalizes the library system in preparation for adding python support.

    New Plugins

    ConfigSet
    This plugin allows for setting starmade configuration files(such as the blockBehaviorConfig.xml file) settings to ensure they remain set the way you want through updates. More information will be available on the github wiki about how to use it soon...

    Marauders

    This plugin introduces pirates that scale with the player's ability to kill them. Note that this is in addition to the current pirates (though you can disable those if you like). The Marauders plugin comes with a bunch of blueprints and waves for the player to face. It will start out with some rather pathetic ships that are built to be quite incompetent pirates (even less powerfull than Isanths), to reasonably built military strike forces.

    InvisAdmins

    Split off from GodlyAdmins in it's own plugin. So now GodlyAdmins only does God mode to admins, and InvisAdmins does invisability.

    NOTE: No plugins except the Base plugin are loaded by default, so if you want to use these you will need to load them with the !plugin command.
    NOTE2: Most plugins have configuration files so that you can customize the plugin's actions to your needs. They will be located in the plugin's folder (starmade/stard/plugins/<plugin name> or starmade/plugins.disabled/<plugin name>).

    New Library Model
    This update introduces a new model for plugins to access the library. The old method is still in place in order to ensure compatibility for older plugins. I'm currently writing up documentation for this on this github wiki and will post when it is complete. The main differences with the new library is the functions are organized into different files by category. functions are now also proken up between starmade and stard internals. This step is intended to make the functions easier to find, and also provide a basic model to start on the python libraries (currently in progress).

    New Plugin Option
    Plugins can now include a prerun script for a script that runs before starmade itself is running. This is useful for putting blueprints in place, changing starmade configuration, and I'm sure other things as well.

    New Server Event

    StarD plugins can now be triggered when an entity overheats. This is great for determining if a player has defeated a ship.

    Enhanced Stability
    I've done a lot of work to try to test out any weird corner case I can think of that could put stard in a strange state or crash it. From this testing and fixes I have implemented StarD should be more stable.

    Bugfixes and Polishing

    Various bugfixes and polishing have been done in this release. For more information, feel free to check the github change logs.
     

    Zyrr

    Chronic Troublemaker
    Joined
    Jun 23, 2013
    Messages
    847
    Reaction score
    363
    • Legacy Citizen 4
    • Thinking Positive
    • Purchased!
    You've certainly caught my attention with the Marauders plugin and your plans for further NPC modding. With the new NPC update around the corner, what did you plan on doing as far as your "civilization mod"?
     
    Last edited:
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    You've certainly caught my attention with the Marauders plugin and your plans for further NPC modding. With the new NPC update around the corner, what did you plan on doing as far as your "civilization mod"?
    Before I say anything, note that nothing is set in stone yet. My current plans are to wait for the finished faction update before working on the Civilization plugin so I can take a look at what's there and play with it for a bit to see what I can do with it.

    Even if the answer to what can I do with the faction update is 'Nothing, every change I make breaks things', I still have many options available to me without it. At present I can easily make a group of ships and stations owned by a faction, and script in various quests and events related to those (perhaps even a storyline). For this plugin I'll be taking a lot of inspiration from the Escape Velocity series of games, where you have multiple factions warring it out, and missions to help or hinder those factions. Though unlike the faction update, I'll have some safeguards to ensure you can't just wipe out a faction.

    If you have any ideas you want to throw at me for things you would like to see, I'd love to hear them.

    If anyone is interested in contributing to this by writing quests, designing a faction's fleet, or storyline let me know.

    Thanks for the support guys!
     
    Last edited:
    • Like
    Reactions: Zyrr
    Joined
    Dec 16, 2013
    Messages
    130
    Reaction score
    83
    • Legacy Citizen 2
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen
    Released a minor bugfix patch 0.3.3.
    The primary fix for this version is to fix the entityOverheat server event in newer versions of StarMade.
    I've also updated the install script to do a better job of updating the standalone version's plugins.

    There still isn't a good method for maintaining your configuration changes for plugins should you choose to make them.