Skip to content

Commit

Permalink
Init
Browse files Browse the repository at this point in the history
  • Loading branch information
Yaribz committed Nov 10, 2013
0 parents commit 2862b00
Show file tree
Hide file tree
Showing 91 changed files with 30,969 additions and 0 deletions.
769 changes: 769 additions & 0 deletions CHANGELOG

Large diffs are not rendered by default.

31 changes: 31 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
To install SPADS on Linux/UNIX, you have to:
============================================

1) Ensure Perl, swig, g++, and wget are installed and available in your PATH
2) Install Spring dedicated, and remember "spring-dedicated" and "Spring data directory" locations (they will be asked during SPADS installation)
3) Install at least one mod in Spring data directory
4) Run "./spadsInstaller.pl" (SPADS will be installed in current directory)
5) Check your configuration files, in particular "spads.conf" (default map is DeltaSiegeDry, you may want to change this ;) ), "hostingPresets.conf" and "battlePresets.conf"

Then you can run SPADS as follows:
"./spads.pl <spadsConfPath>" (for instance: "./spads.pl etc/spads.conf")



To install SPADS on Windows, you have to:
=========================================

1) Install ActivePerl Windows (x86) (available here: http://www.activestate.com/activeperl/downloads), and ensure your Perl bin directory is in your PATH environement variable
2) Install wget (available here: http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe), and ensure your wget bin directory is in your PATH environment variable
3) Install Spring if not installed yet, and remember install location (it will be asked during SPADS installation as "Spring data directory")
4) Install at least one Spring mod
5) Open a Command shell, go in the directory where you extracted SPADS installation files, and run "perl spadsInstaller.pl" (SPADS will be installed in current directory)
6) Check your configuration files, in particular "spads.conf" (default map is DeltaSiegeDry, you may want to change this ;) ), "hostingPresets.conf" and "battlePresets.conf"

Then you can run SPADS as follows:
"perl spads.pl <spadsConfPath>" (for instance: "perl spads.pl etc/spads.conf")



If you have any problem, you can contact me (bibim) directly in Spring lobby or forums
======================================================================================
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

102 changes: 102 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
SPADS
=====
SPADS (Spring Perl Autohost for Dedicated Server) is a Perl autohost program
for [SpringRTS](http://springrts.com/), released under GPL v3 license. It has
been designed from start for headless servers without any graphic interface,
and is heavily customizable through various configuration levels. For more
details please refer to [SPADS thread](http://springrts.com/phpbb/viewtopic.php?f=1&t=17130)
on Spring forums.

Components
----------
* [src/spads.pl](src/spads.pl): SPADS application.
* [src/SpadsConf.pm](src/SpadsConf.pm): Perl module handling SPADS
configuration and dynamic data files.
* [src/spadsInstaller.pl](src/spadsInstaller.pl): SPADS installation script
(also used to compile Perl Unitsync interface module).
* [src/SpadsUpdater.pm](src/SpadsUpdater.pm): Perl module handling SPADS
automatic update.
* [src/update.pl](src/update.pl): Application to update SPADS components
manually.
* [src/SpadsPluginApi.pm](src/SpadsPluginApi.pm): Perl module implementing the
plugin API for SPADS.
* [src/getDefaultModOptions.pl](src/getDefaultModOptions.pl): Application to
retrieve the list of modoptions for all installed mods, and convert them
optionnaly in SPADS format to copy-paste in the battlePresets.conf
configuration file.
* [SPADS configuration templates](etc): Templates for SPADS configuration
files.
* [var/help.dat](var/help.dat): Data file for SPADS commands help.
* [var/helpSettings.dat](var/helpSettings.dat): Data file for SPADS settings
help.
* [SPADS reference guide](doc/spadsDoc.html): HTML documentation of all SPADS
commands and settings (generated from help data files).
* [SPADS plugin API](doc/SpadsPluginApi.html): HTML documentation of the SPADS
plugin API (generated from SPADS plugin API module)
* [Official SPADS plugins](plugins/officials): Official SPADS plugins sources.
* [SPADS plugins templates](plugins/templates): Templates for SPADS plugins
development.
* [SPADS plugins tutorials](plugins/tutorials): Sources of the SPADS plugins
used in the tutorials.
* [packages.txt](packages.txt): SPADS packages index file for HTTP repository
(used for automatic updates).
* [UPDATE](UPDATE): Manual update procedure for major SPADS versions.

SPADS is based on the templates provided by following project:
* [SpringLobbyBot](https://github.com/Yaribz/SpringLobbyBot)

Dependencies
------------
The SPADS application depends on following projects:
* [SimpleLog](https://github.com/Yaribz/SimpleLog)
* [SpringLobbyInterface](https://github.com/Yaribz/SpringLobbyInterface)
* [SpringAutoHostInterface](https://github.com/Yaribz/SpringAutoHostInterface)
* [Spring](https://github.com/spring/spring)

SPADS also depends on following projects (hosted remotely) for additional
functionalities:
* [SLDB](https://github.com/Yaribz/SLDB) for TrueSkill support and advanced
multi-account detection.
* [spring replay site](https://github.com/dansan/spring-replay-site) for
automatic replay uploading.

Installation
------------
The installation can be performed by downloading
[the installation package](http://planetspads.free.fr/spads/installer/spadsInstaller.tar)
and following the instructions of the [INSTALL](INSTALL) file.

The installation package contains following components (other components are
automatically downloaded):
* [INSTALL](INSTALL)
* [LICENSE](LICENSE)
* [SimpleLog.pm](https://github.com/Yaribz/SimpleLog/blob/master/SimpleLog.pm)
* [spadsInstaller.pl](src/spadsInstaller.pl)
* [SpadsUpdater.pm](src/SpadsUpdater.pm)

Documentation
-------------
* The SPADS reference guide for all SPADS commands and settings is available
online [here](http://planetspads.free.fr/spads/doc/spadsDoc.html). It can be
generated from any SPADS installation directory by using following command
(files are generated in the directory specified by the "varDir" setting in
spads.conf):

perl spads.pl etc/spads.conf --doc

* The SPADS plugin API documentation is available online
[here](http://planetspads.free.fr/spads/doc/spadsPluginApiDoc.html). It can
be generated from any SPADS installation directory by using following
command (the pod2html.css file can be found [here](doc/pod2html.css)):

pod2html -css=pod2html.css --infile=SpadsPluginApi.pm --outfile=SpadsPluginApi.html

* Additional documentation can be found on [SPADS wiki](http://springrts.com/wiki/Hosting_Spring#SPADS).

Licensing
---------
Please see the file called [LICENSE](LICENSE).

Author
------
Yann Riou <[email protected]>
77 changes: 77 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
- Operating guide, structure:

1) Configuration files
can be reloaded with !reloadConf [keepSettings] except most global settings which require restart (cf 1.3.1.1)
1.1) Types of configuration files
1.1.1) Settings
1.1.2) Tables
1.1.3) Simple tables
1.2) Advanced syntax
1.2.1) Includes
1.2.2) Macros
1.3) Files description
1.3.1) Settings files
1.3.1.1) Main SPADS settings (spads.conf)
1.3.1.1.1) Global settings
defined in first part of spads.conf
need restart to be applied (except log levels)
1.3.1.1.2) Preset settings
defined in preset definitions part of spads.conf
managed through global presets (!list presets / !preset ...), default global preset defined by global setting, other allowed presets defined in the preset
but can be changed individually (!list settings / !set ...), default and allowed values depend on current global preset
1.3.1.2) Hosting settings (hostingPresets.conf)
Spring lobby settings, visible from outside the battle, need rehosting to be changed once battle has been opened
managed through hosting presets (!list hPresets / !hPreset ...), default and allowed hosting presets are defined in current global preset
can be changed individually (!list hSettings / !hSet ...), default and allowed values are defined in current hosting preset
1.3.1.3) Battle settings (battlePresets.conf)
Spring game settings (visible only from inside the battle room, can be changed on the fly without rehosting)
managed through battle presets (!list bPresets / !bPreset ...), default and allowed battle presets are defined in current global preset
but can be changed individually (!list bSettings / !bSet ...), default and allowed values are defined in current battle preset
1.3.1.4) Plugin settings (<pluginName>.conf)
same syntax as main SPADS settings (spads.conf)
1.3.2) Table files
1.3.2.1) Access levels definitions (levels.conf)
1.3.2.2) Users definitions (users.conf)
1.3.2.3) Commands rights requirements (commands.conf)
1.3.2.4) Ban lists definitions (banLists.conf)
1.3.2.5) Map lists definitions (mapLists.conf)
1.3.2.6) Map boxes definitions (mapBoxes.conf)
2) Detailed commands and settings description
2.1) From lobby (only way to get modoptions/mapoptions help)
2.2) HTML
2.2.1) Online (for unstable release)
2.2.2) Generated locally (for installed release)
3) Log files
3.1) Main SPADS log (spads.log)
3.2) chat files (chat directory)
4) Data files
4.1) Static data files
4.1.1) Commands help (help.dat)
4.1.2) Settings help (helpSettings.dat)
4.2) Dynamic data files
4.2.1) Dynamic bans (bans.dat)
4.2.2) Map information cache (mapInfoCache.dat)
4.2.3) User preferences (preferences.dat)
4.2.4) Map hashes (mapHashes.dat)
4.2.5) User data (userData.dat)
4.2.6) Map boxes (savedBoxes.dat)
4.2) Spring start script (startscript.txt)
5) Plugins
5.1) Official plugins
5.2) Installation
5.3) Development
6) Updates
6.1) SPADS updates
6.1.1) Minor updates
6.1.2) Major updates
6.2) Spring updates
6.2.1) Linux
6.2.2) Windows
6.3) Plugin updates
7) Advanced autohosting
7.1) TrueSkill ranking system
7.2) Automatic replay uploading
7.3) Multihosting
7.4) Map presets
7.5) Running simulation on server
hosting AI bots...
49 changes: 49 additions & 0 deletions UPDATE
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
Help file for SPADS manual updates
==============================================================================
Some SPADS updates require manual modifications in configuration files. When
this happens, SPADS does NOT auto-update because it wouldn't be able to
restart without these modifications. Instead, it logs an alert and continues
running normally.

This file explains for each SPADS manual update how to add the required new
settings with their default values. You just have to follow the section
concerning your update. If you need additional information about these new
settings, you can check the SPADS settings documentation here:
http://planetspads.free.fr/spads/doc/spadsDoc.html

You can also check that your modifications are correct by taking a look at the
up-to-date configuration templates available here (replace <release> by your
actual SPADS release: "stable", "testing" or "unstable"):
http://planetspads.free.fr/spads/conf/templates/<release>/

Then, when the manual actions have been performed, you can force an update of
all SPADS packages by entering the following command from SPADS installation
directory (replace <release> by your actual SPADS release: "stable", "testing"
or "unstable"):
on Linux: ./update.pl <release> -f -a
on Windows: perl update.pl <release> -f -A

Finally you can take a look at what changed during this update by checking the
changelog available here:
http://planetspads.free.fr/spads/repository/CHANGELOG
==============================================================================

#######################################
# help.dat: 0.11.* --> 0.12.* #
# helpSettings.dat: 0.4.* --> 0.5.* #
# spads.pl: 0.10.* --> 0.11.* #
# SpadsConf.pm: 0.10.* --> 0.11.* #
#######################################
- add following global setting definitions in spads.conf:
"pluginsDir:", "autoLoadPlugins:"
- add following preset setting definitions in spads.conf:
"speedControl:0|1", "skillMode:rank"
- update the "balanceMode" preset setting values by replacing "rank" by "skill" ("clan;rank" --> "clan;skill", "rank" --> "skill")
- declare new commands in commands.conf by adding following lines:
[chskill]
::|120:
[plugin]
::|130:
- remove obsolete definitions in commands.conf for following command aliases:
"coop","cv","map","spec"

Loading

0 comments on commit 2862b00

Please sign in to comment.