Unofficial CardLife revival project, pronounced like "celery"
Find a file
2021-08-29 13:06:37 -04:00
CLre Implement server-side chat and chat command framework 2021-08-13 21:26:48 -04:00
CLre_server Minor improvements to chat commands 2021-08-29 13:06:37 -04:00
.gitignore Initial commit 2020-10-01 13:21:44 +00:00
CLre.sln Create CLre_server mod and port CLre basic functionality 2021-03-18 14:51:13 -04:00
LICENSE Remove placeholders in license 2021-03-05 10:34:57 -05:00
README.md Final touches for v0.0.2 2021-05-15 11:13:02 -04:00

CLre

Always eat your celery, so you'll grow up to be big and strong like me. Work-in-progress mod for CardLife.

CardLife has stopped receiving updates, but that doesn't mean it's free from bugs. CLre is a mod to rejuvenate CardLife by fixing old bugs and adding some modding sprinkles.

Setup

This project requires most of Cardlife's .dll files to function correctly. Most, but not all, of these files are stored in Cardlife's Cardlife_Data\Managed folder. The project is pre-configured to look in a folder called cl in the solution's main directory or one level up from that.

You can make sure CLre can find all of .dll files it needs by copying your Cardlife folder beside this repo's folder and renaming it to cl, but that's a bit of a waste of disk space. You can also create a symbolic link to your Cardlife install folder named cl in the same spot to avoid having to re-copy files. For example, if you cloned the repo into a folder called CLre_repo, this is what your folder structure would look like.

If you decide to change the cl folder configuration, do not commit changes to your CLre.csproj or CLre_server.csproj files otherwise your changes will be rejected.

CLre_repo/ <- CLre git project files
  CLre/ <- Code files
  README.md <- This file
  etc.

cl/ <- CardLife files
  Cardlife_Data/
    Managed/ <- Cardlife C# Assemblies
  CardlifeGameServer_Data/
    Managed/ <- Cardlife Server C# Assemblies (optional)

For any game mod to work, you will have to patch your game with the Cardlife adaptation of CLIPA. FOr a server mod to work, you will have to patch the server (CardlifeGameServer.exe). The installation process is roughly the same as for Gamecraft, except with a different name: GCIPA Gamecraft install guide.

Building

After you've completed the setup, open the solution file CLre.sln in your prefered C# .NET/Mono development environment. I'd recommend Visual Studio Community Edition or JetBrains Rider.

If you've successfully completed setup, you should be able to build the CLre project without errors. If it doesn't work and you can't figure out why, ask for help on the Exmods Discord server.

Installation

To install the CLre mod, copy the build's CLre.dll into the Plugins folder where Cardlife is installed. To install the CLre_server mod, copy the CLre_server build's CLre_server.dll into the Plugins folder where Cardlife is installed.

A Note on CLre and CLre_server mods' (lack of) cooperation

CLre is designed for the Cardlife client, and cannot be used to mod the Cardlife server. Similarly, CLre_server is designed for the Cardlife server, and cannot be used to mod the Cardlife client. DO NOT install CLre and CLre_server in the same Plugins folder, because both mods will be loaded -- guaranteeing one will break. To install CLre and CLre_server on the same computer, create a copy of the game installation and use one copy for CLre and one for CLre_server.

Functionality

CLre

CLre provides a minimal modding API and useful bugfixes for the Cardlife client.

Fixes

As of v0.0.2, eight (8) bugfixes are implemented.

API

Basic engine registration and some events are exposed for modders to use. Documentation WIP...

CLre_server

CLre_server provides a minimal modding API, admin HTTP server, and bugfixes for the Cardlife server.

Fixes

As of v0.0.2, one (1) bugfix is implemented.

  • InitLogSooner: Start the logger slightly sooner than Cardlife does [TARGET: CustomLoggerThread] [ID: 0] (0M/2P/1I/0W/0A/0D/3T)

API

Basic engine registration and some events are exposed for modders to use. Documentation WIP...

HTTP Server

The HTTP server is enabled by the -web command line argument. It is disabled by default to reduce resource usage. When enabled, the server will listen on http://localhost:5030 and provide basic server status information. This can be accessed through any standard web browser on the same computer. If you wish to make this publicly accessible, it is recommended to use Nginx or another web proxy system to proxy traffic to that port securely.

Useful endpoints

GET / HTML landing page with some basic server info
GET /l/current Server output log, up-to-date as of last webpage refresh
GET /d/version Cardlife, Unity and CLre version information
GET /status.json Useful status information about players and server state in JSON format
GET /c/game.json Basically GameServerSettings.json for the running Cardlife server