Skip to content
This repository was archived by the owner on Apr 27, 2019. It is now read-only.

Commit 7635233

Browse files
committed
Updated documentation and installation instruction in anticipation of 1.2.0 release
1 parent e36fd26 commit 7635233

1 file changed

Lines changed: 68 additions & 35 deletions

File tree

README.md

Lines changed: 68 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,66 @@ With the built-in plugins (which are removable):
1818

1919
StarryPy runs on Python 2.7. It has been tested with Python 2.7.6, 2.7.5, 2.7.2, and PyPy.
2020

21-
This requires Python and pip to install, and on *nix systems the python development headers (python-dev in apt, python-devel in yum.) After installing those, simply run `pip install -r requirements.txt` in the root directory of StarryPy. This will install all of the components needed for use. I recommend running it in a virtualenv.
21+
Below I provide installation instructions for Linux and Windows. Please note that Windows setup is more complex and in general seems to be buggier. I develop for Linux primarily, so you may consider the windows instructions unsupported; though they did work for me in a VM.
2222

23-
Create a configuration file using the config.json.example. The most important things to note are owner\_uuid, which should be set to a character's UUID that you possess and have never shared; server\_address and server\_port, which should be set to the proxied server. StarryPy will default to port 21025 for normal clients to connect to. Select a good random port, or set it to 21024 and firewall it off from the outside.
23+
## Linux
24+
(CentOS instructions coming in the near future.)
25+
On Debian, the installation is decidedly simple, but it will require sudo access if you do not have python 2.7 installed.
26+
27+
First, let's make sure that all the prerequisites are installed:
28+
29+
`sudo apt-get install python2.7 python-dev python-pip git`
30+
31+
After installing the prerequisites, clone the repo in the directory of your choice using git:
32+
`git clone https://github.com/CarrotsAreMediocre/StarryPy`
33+
34+
## Windows
35+
36+
As a reminder, though this worked for me I cannot guarantee it will fork for you. I offer no particular support for running StarryPy on windows as it has become a huge time sink that has dragged me away from development proper. If, however, you run into actual bugs with the server in Windows, please do let me know.
37+
38+
### Download Python
39+
We'll be using ActiveState python for ease of use. This way you don't have to monkey around with your paths. Just download it from [here](http://www.activestate.com/activepython/downloads). ***Make sure you grab the 32-bit 2.7 version and not the python 3 version; the server will not run on Python 3, nor will it work with the 64-bit version on Windows due to licensing requirements.***
40+
41+
### Download StarryPy from github.
42+
43+
I personally recommend using git, but a zip file will suffice. Please note that if you choose not to use git (not too hard to figure out), future upgrades are far more likely to break everything.
44+
45+
If not using git, click the Download zip file on the right side of the page.
46+
47+
Move the StarryPy-master folder somewhere convenient. You can rename it to whatever you like.
48+
49+
50+
### Install requirements.
51+
52+
For this step, you'll need to get inside the StarryPy folder in the command prompt. For Vista or greater, which hopefully you are all running, you can simply open up the folder, make sure you don't have any files selected, and then hold down shift and right click in the empty space of the folder. There will be an option to 'Open Command Window Here' or something along those lines.
53+
54+
If you can't find that window, run the command 'cmd'. Then, use 'cd directory_name' to get to the right place. If you go too high, use 'cd..' to go down a level.
55+
56+
Once you're in the StarryPy folder, run 'pypm install -r requirements.txt' to install all of the dependencies. It will give you an error about enum34; don't worry about it, we'll take care of that next.
57+
58+
After all the components are done installing, run 'pypm install pip'. Wait for that to finish installing, and then run 'pip install enum34'.
59+
60+
Finally, once that's done, we can move onto configuration.
61+
62+
# Configuration
63+
There are two areas of configuration that we are concerned with. The first is the StarryPy configuration, and the second is Starbound configuration.
64+
65+
For StarryPy, you will have to create a configuration file. Copy config.json.example to config.json in the config/ folder, and edit the following variables:
66+
67+
* upstream_port: This is the port that Starbound will be running on. I recommend 21024. It **must** match the port in your starbound.config file.
68+
* upstream_hostname: Change this if you are hosting the wrapper on a different computer than your server.
69+
* bind_port: This should be 21025 normally; it is the port that StarryPy listens on.
70+
* passthrough: **Make sure this is false.** It is an emergency off switch for Starrypy.
71+
72+
Finally, find starbound.config and change `gameport` to be exactly the same as `upstream_port` in config.json.
2473

2574
# Run it
26-
After making sure the Starbound server is running, use your terminal (cmd or powershell on windows) and `cd` to the directory you installed StarryPy into. Enter `python server.py` to start the proxy.
75+
**After making sure the Starbound server is running**, use your terminal (cmd or powershell on windows) and `cd` to the directory you installed StarryPy into. Enter `python server.py` to start the proxy.
2776

2877
# Built-in plugins
29-
StarryPy is nearly entirely plugin driven (our plugin manager is a plugin!), so there are quite a few built-in plugins. The truly important plugins are in the core\_plugins folder. If you remove any of those, it's likely that most other plugins will break. We'll break them down by core plugin and normal plugin classes. If you are looking for the commands, feel free to skip the core plugins section.
78+
StarryPy is nearly entirely plugin driven (our plugin manager is a plugin!), so there are quite a few built-in plugins. The truly important plugins are in the core\_plugins folder. If you remove any of those, it's likely that most other plugins will break. We'll break them down by core plugin and normal plugin classes.
79+
80+
If you are looking for commands, they have been removed from the listing due to the constant flux and the time required for documentation. For a list of commands that you can access from your current user level, use /help. For help with a specific command, use /help command_name.
3081

3182
## Core Plugins
3283

@@ -43,19 +94,7 @@ This is a core plugin that works in conjunction with the plugin class SimpleComm
4394
## Plugins
4495

4596
### Admin Commands
46-
The admin commands plugin implements player management from in game. It is a SimpleCommandPlugin that provides the following commands:
47-
48-
* **/who**: Displays all users currently logged into the server. `Access: Everyone`
49-
* **/planet**: Displays all users on your current planet. `Access: Everyone`
50-
* **/whois**: Displays user information. Includes player UUID, IP address, username, access level, and current planet. `Access: Admin`
51-
* **/promote**: Promotes/demotes a user to a given access level. You can only promote if you are a moderator or above, and then only to a user of lesser rank than yourself. `Access: Moderator`
52-
* **/kick**: Kicks a user by username. If the name has spaces, enclose it in quotes. `Access: Moderator`
53-
* **/ban**: Bans an IP address. Best fetched with /whois. It does not support usernames. `Access: Admin`
54-
* **/bans**: Lists all active IP bans. `Access: Admin`
55-
* **/unban**: Unbans an IP address. `Access: Admin`
56-
* **/mute**: Mutes a player. `Access: Moderator`
57-
* **/unmute**: Unmutes a player. `Access: Moderator`
58-
* **/give\_item**: Gives an item to a player. Syntax is /give\_item player (enclosed in quotes if it has spaces) itemname count. The default limit for number of items to give to a player is 1000. `Access: Admin`
97+
The admin commands plugin implements player management from in game.
5998

6099
### Admin Messenger
61100
This command forwards a message to all active moderators or greater. Any command prefixed with ## will be sent to moderators+ only. `Access: Everyone`
@@ -70,35 +109,21 @@ This plugin prevents non-registered users from building or destroying anything.
70109
This plugin displays color codes for each username depending on rank. The colors are set in config.json.
71110

72111
### MOTD
73-
This plugin sends a Message of the Day on login. The MOTD is located in motd.txt in the plugin folder. It provides the following command:
74-
75-
* **/set\_motd**: Sets the MOTD to the following text. `Access: Moderator`
112+
This plugin sends a Message of the Day on login.
76113

77114
### New Player Greeter
78115

79116
Greets first-time players on the server. Gives them a greeting (located in new\_player\_message.txt) and gives them a pack of starter items (located in starter\_items.txt). Default items are 200 `coalore` and 5 `alienburger`s.
80117

81118
### Planet Protection
82-
This plugin protects specified planets against modification in any way. Currently if a planet is protected only registered users may modify it. This plugin provides the following commands:
83-
84-
* **/protect**: Protects the planet you are currently on. `Access: Admin`
85-
* **/unprotect**: Unprotects the planet you are currently on. `Access: Admin`
119+
This plugin protects specified planets against modification in any way. Currently if a planet is protected only registered users may modify it.
86120

87121
### Plugin Manager
88-
This plugin provides a method of enabling/disabling plugins. I know it's silly that it's a plugin, you don't have to tell me. It provides the following commands:
89-
90-
* **/list\_plugins**: Sends you a list of all loaded plugins. `Access: Admin`
91-
* **/disable\_plugin**: Disables a plugin by name. `Access: Admin`
92-
* **/enable\_plugin**: Enables a plugin by name. `Access: Admin`
93-
* **/help**: This command provides a list of commands if called by itself, and the help string for a command if given a name. Example syntax: /help enable\_plugin. `Access: Everyone`
122+
This plugin provides a method of enabling/disabling plugins. I know it's silly that it's a plugin, you don't have to tell me.
94123

95124
### Warpy
96125
This plugin provides various methods for warping players and ships around.
97126

98-
* **/warp**: Warps you to another player's ship. `Access: Admin`
99-
* **/move\_ship**: Moves your ship to the location of another player, or coordinates in the form of `alpha 514180 -82519336 -23964461 4` `Access: Admin`
100-
* **/move\_other\_ship**: Same as above, but another player's ship. `Access: Admin`
101-
102127
### More plugins
103128
Even more plugins can be found over at [our plugin list](https://github.com/MrMarvin/StarryPy_plugins).
104129

@@ -112,6 +137,15 @@ There will be more to come in the near future, for now please examine the base p
112137

113138
Please consider letting us know of your plugin(s) so it can be listed at [our plugin list](https://github.com/MrMarvin/StarryPy_plugins). Pull requests are much appreciated! Please note that any plugins that we integrate into StarryPy proper must be licensed under WTFPL for simplicity's sake. If this isn't acceptable to you, we will only be able to provide a link.
114139

140+
# Troubleshooting
141+
## None of the commands are working
142+
You are likely in passthrough mode or connecting to the vanilla server. Check config.json and ensure that passthrough is false.
143+
144+
If you are running StarryPy on the same computer you're playing it from, it is likely it is using the gameport in starbound.config to connect to. To avoid this, use localhost:21025 in the hostname field in Starbound. Other computers will be able to connect fine.
145+
146+
## Something else?
147+
If you're having another issue, check the Issues tab over on the side. If you find that your issue isn't there, please create a new issue with a copy of your debug.log (if applicable.)
148+
115149
# Planned features
116150
We haven't been able to pack in everything we've wanted to in this version. We love contributions, so please feel free to write whatever plugins/improve the core however you can.
117151

@@ -121,7 +155,6 @@ We have quite a roadmap, here are some of the highlights you can expect in the n
121155
* Loot rolling. So a rare item dropped and you don't think it's fair your friend got it? Soon you'll be able to get good items without ending friendships and going to prison on the inevitable murder charge.
122156
* Lotteries. Because what is life without a little risk?
123157
* Creature spawning. Want to spawn a couple dozen bone dragons? So do we!
124-
* Projectile blacklist. This should be coming very soon.
125158
* Internationalization. Translate plugins and core messages with ease to your preferred language.
126159
* Role based access control Thought the mod/admin/owner distinction is useful, having individual roles is our plan for the future.
127160
* Client filtering based on modded items. Though asset digests aren't supported right now, we want to do some minor filtering to keep out the riff-raff (if you as an admin want to.)

0 commit comments

Comments
 (0)