Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Added Satisfactory Protocol and Support #645

Merged
merged 9 commits into from
Oct 1, 2024

Conversation

Smidy13
Copy link
Contributor

@Smidy13 Smidy13 commented Sep 24, 2024

Adds support for Satisfactory, using custom satisfactory protocol.
Related Issues: #442

Please note this is my first PR to this project so please be kind.

Also Satisfactory has only just gone v1.0 therefore the API is limited at the moment. Server Name for example cannot be pulled using the API but a feature request has been submitted to the game developers here which should be voted on for consideration:

https://questions.satisfactorygame.com/post/66ebebad772a987f4a8b9ef8

Example Raw Response

{
  "data": {
    "serverGameState": {
      "activeSessionName": "MainSession",
      "numConnectedPlayers": 0,
      "playerLimit": 4,
      "techTier": 8,
      "activeSchematic": "/Script/Engine.BlueprintGeneratedClass'/Game/FactoryGame/Schematics/Progression/Schematic_8-3.Schematic_8-3_C'",
      "gamePhase": "/Script/FactoryGame.FGGamePhase'/Game/FactoryGame/GamePhases/GP_Project_Assembly_Phase_3.GP_Project_Assembly_Phase_3'",
      "isGameRunning": true,
      "totalGameDuration": 183566,
      "isGamePaused": true,
      "averageTickRate": 29.907190322875977,
      "autoLoadSessionName": "MainSession"
    }
  }
}

Note: activeSessionName and autoLoadSessionName are the name of the save file and not the server.

CHANGELOG.md Outdated Show resolved Hide resolved
Copy link
Member

@CosminPerRam CosminPerRam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just some small changes, thanks!

protocols/satisfactory.js Outdated Show resolved Hide resolved
protocols/satisfactory.js Outdated Show resolved Hide resolved
protocols/satisfactory.js Outdated Show resolved Hide resolved
@CosminPerRam CosminPerRam linked an issue Sep 24, 2024 that may be closed by this pull request
Copy link
Member

@CosminPerRam CosminPerRam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also please rebase.

CHANGELOG.md Outdated Show resolved Hide resolved
@Smidy13
Copy link
Contributor Author

Smidy13 commented Sep 28, 2024

Hopefully should be OK now. Also thank you for your patience and guidance as I've worked through the options and changes!

Copy link
Member

@CosminPerRam CosminPerRam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good but I've requested some changes to be more in line with the other implementations regarding additional options.

README.md Outdated Show resolved Hide resolved
lib/QueryRunner.js Outdated Show resolved Hide resolved
protocols/index.js Show resolved Hide resolved
protocols/satisfactory.js Show resolved Hide resolved
Copy link
Member

@CosminPerRam CosminPerRam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CI fails cause we need to have

extra: {
   doc_notes: 'satisfactory',
}

in the game entry for the markdown file to properly link to its section, for example this is the same for Grand Theft Auto V - RageMP:

doc_notes: 'gta5r'

By the way, one can use act to run the github actions locally to avoid waiting for PR reviewer to approve them.

GAMES_LIST.md Outdated
@@ -492,5 +493,9 @@ EOS does not provide players data.
Palworld support can be unstable, the devs mention the api is currently experimental.
To query Palworld servers, the `RESTAPIEnabled` setting must be `True` in the configuration file, and you need to pass the `username` (currently always `admin`) and the `adminpassword` (from the server config) as the `password` parameter.

### <a name="satisfactory"></a>Satisfactory
Satisfactory servers unless specified use self-signed certificates for the HTTPS API. Because of this you will need to set the `rejectUnauthorized` flag in options to `false` in order to connect.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

false should be true here.

Copy link
Member

@CosminPerRam CosminPerRam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@CosminPerRam CosminPerRam merged commit b394716 into gamedig:master Oct 1, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support Satisfactory game
2 participants