Giter Site home page Giter Site logo

factorio-serverlist's Introduction

Factorio Serverlist

Unofficial serverlist and mod pack generator for Factorio - version 3.0

(It was originally just a serverlist, now it also serves mods. Hence the name.)

Serverlist features

  • Display countries and sort by closest server
  • Search by number of players, server version, mods (and versions), server name, description, tags, IP address and player name
  • List auto-updates every minute
  • Filter out passworded servers or servers that require user verification
  • Sort by playing time, number of players online, uptime, etc.
  • It remembers your last search settings

Mod pack generator

Since version 3.0, a mod pack generator has been added. It is integrated into this project because it fits nicely in the web interface (no need for a separate website) and because it uses the serverlist data as well.

Installing

You will need a MySQL/MariaDB database and a web server running PHP 5.4 or newer. Copy all the files in www into the desired web directory and modify config.template.php. After modifying, rename it to config.php.

Database setup is done automatically. It uses two tables: factorioservers and modlog. Unless you have existing tables named that way, you don't need to create a new database.

The final step is to setup a cronjob for updating the serverlist and downloading mods. For the serverlist, either call get-games.php from the command line (causing $_SERVER[REMOTE_ADDR] to be unset) or call get-games.php?secretUpdateParameter (see config.php to configure the parameter). For the mod downloader, call mod-downloader.php from the command line.

License

MIT. See the LICENSE file. Third party resources are all noted in the footer of the website (see the live site, or check out www/index.html).

Contributing

Contributions of any kind are welcome! Documentation, feedback, enhancements, refactoring, graphics, you name it.

factorio-serverlist's People

Contributors

lgommans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

factorio-serverlist's Issues

Compress server data

The data gets over half a megabyte during busy hours and is still a couple hundred kilobytes during slow hours. Some testing should be done with compression. Ideally, the decompressor should be small and very fast:

  • small because otherwise it defeats the whole purpose. If it's bigger than a few functions, thus requiring a separate file and probably adding another roundtrip, it already kind of defeats the purpose.
  • fast because we already spend enough CPU time parsing this monster.

I'm thinking of some simple string replacements, possibly making it a binary format, but my thoughts still focus on a substitution scheme for JSON. It's probably better to do some testing with existing algorithms like deflate, though I wonder how fast bitwise operations are going to be in Javascript (namely Huffman).

Compression time is not an issue, within bounds of course.

Displaying many servers makes browser freeze

This happens both when searching/filtering and when it auto-updates in the background.

Possible solutions:

  1. Pagination -- this would probably work and speed up displaying the first results. Not sure what it does for UX.

  2. Web workers -- prevents freezing but takes the same amount of time. Perhaps it can also show first results before it's completely finished, I'm not sure.

  3. Split up the work and let the browser refresh in between -- prevents freezing, displays results quickly, and is probably also the most complicated.

  4. Limit result count -- this is the workaround option if people mind it too much, until I can implement something better.

Don't expand servers on hover

It breaks the flow and makes stuff jump around.

I'll always show players and give mods a "show more" button, then nothing expands on hover anymore.

Linking to game id broken

It will jump to the game id when you click the icon, but giving the link to someone else fails because Javascript updates the page after the browser tries to find the ID.

I will make it so that it shows only that server when you link to one.

Mark servers as favorites

Someone mentioned this. Does anyone else want this feature? Leave a +1 or comment.

I imagine you could save servers, which would always be on top when you open the page, and maybe also players, so you can see when friends are online.

This could work either with localstorage/cookies which are fairly unreliable (the browser might put the data out with the garbage) or an account system, which seems more complicated than necessary. Perhaps people can choose a username, no password, and store favorites there? Then you don't have the whole account procedure, while still being able to log in from anywhere. Ideas on this are welcome as well.

Sort by distance to user

As one of the sorting options.

Will be country- or maybe (if we change the database) city-based.

Server list no longer updating

The server list has not been updated for several days now, for me it shows: Updated: 11:06:55 | 81 players in 153 shown servers (647 total)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.