A place where users can share OpenRCT2 plugins
Live at https://openrct2plugins.org
For now, users can submit plugis hosted on GitHub repos. There is a button in the top right to submit links, without needing to log in.
There is server side validation to make sure it's a https://github.com
link. I'm alsothinking about adding validation to check if the repo has rct2
or OpenRCT2
in the tags, but not everyone uses tags.
There is basic listing (sorting new and rating, which is based on when users submitted the plug-in, and how many stars it has on GitHub), also a basic search functionality.
Users can also check details about the plug-in (which is basicallt the README.md form the GitHub repo), and also list plugins by user (by clicking on their profiles)
- Create a GitHub Access Token with the
public_repo
option. - Copy
template.env
to.env
and edit it with your GitHub Token, and change the HTTP port if you'd like make run
You should now be able to access the page at http://localhost, or http://localhost:PORT if you edited the port in the .env
file
Reverse proxy example for NGINX is in docker/nginx/prod/reverse-proxy.conf
- Copy
template.env
to.env
and edit it with your GitHub Token, and also change the MySQL password - Run
make build-sass
to build the scss into a css file make run-prod
you can add a query string json=true
to almost any page, and it will return the results in JSON.
This works all the lists, as well as individual plugin pages and user pages.
It will also work with any type of sorting, new, rating, updated, and also for searches.
Examples:
List of plugins (second page, showing 20 results per page):
/list/?sort=new&results=20&p=2
List of plugins by sadret:
/user/MDQ6VXNlcjE1ODk1NTMy?json=true
Individual plugin:
/plugin/R_kgDOL_w7NA?json=true
Note that the last portion of a URL is usually just cosmetic. So, for example
https://openrct2plugins.org/plugin/R_kgDOL_w7NA/ParkPauser
and
https://openrct2plugins.org/plugin/R_kgDOL_w7NA
goes to the same page.
This can be useful for plugin-managers or something like that. So you can just grab the ID of the plugin from the /list?json
, and then navigate to /plugin/<id>
, it doesn't actually need the plugin name on the URL
The same applies to /user
pages.