Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

Assetto corsa competizione #2090

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

eXpansiiVe
Copy link

@eXpansiiVe eXpansiiVe commented Jan 25, 2023

Description

I created the egg for Assetto Corsa Competizione, the server seems to start looking at the console, but when i try to change something in the server config files (name, password, slots, ecc) it simply gets ignored (doesn't work changing values with the eggs variable nor editing manually the file).
It's currently using the Wine docker from parkervcp/yolks
I hope someone can help me figure it out.

closes: #1641

Checklist for all submissions

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • [-] Have you tested and reviewed your changes with confidence that everything works?
  • Did you branch your changes and PR from that branch and not from your master branch?

New egg Submissions

  1. [-] Does your submission pass tests (server is connectable)? I'm not sure.
  2. Does your egg use a custom docker image?
    • Have you tried to use a generic image?
    • Did you PR the necessary changes to make it work?
  3. Have you added the egg to the main README.md and any other README files in subdirectories of the egg (e.g /game_eggs) according to the alphabetical order?
  4. Have you added a unique README.md for the egg you are adding according to the alphabetical order?

@eXpansiiVe eXpansiiVe marked this pull request as ready for review January 25, 2023 22:34
@gOOvER
Copy link
Contributor

gOOvER commented Jan 26, 2023

can you Post the config File? i dont want to remove my SteamGuard.

Then i can take a look into config parsing

@eXpansiiVe
Copy link
Author

Sure, that's the default one that gets created whenever you run the server.

It's a .json

{
    "serverName": "ACC Server (please edit settings.json)",
    "adminPassword": "",
    "carGroup": "FreeForAll",
    "trackMedalsRequirement": -1,
    "safetyRatingRequirement": -1,
    "racecraftRatingRequirement": -1,
    "password": "",
    "maxCarSlots": 30,
    "spectatorPassword": "",
    "configVersion": 1
}

@gOOvER
Copy link
Contributor

gOOvER commented Jan 26, 2023

Sure, that's the default one that gets created whenever you run the server.

It's a .json

{
    "serverName": "ACC Server (please edit settings.json)",
    "adminPassword": "",
    "carGroup": "FreeForAll",
    "trackMedalsRequirement": -1,
    "safetyRatingRequirement": -1,
    "racecraftRatingRequirement": -1,
    "password": "",
    "maxCarSlots": 30,
    "spectatorPassword": "",
    "configVersion": 1
}

Test this please for parsing:

{
    "server/cfg/configuration.json": {
        "parser": "json",
        "find": {
            "maxConnections": "{{server.build.env.MAX_CONNECTIONS}}"
        }
    },
    "server/cfg/settings.json": {
        "parser": "json",
        "find": {
            "serverName": "\"{{server.build.env.SERVER_NAME}}\"",
            "adminPassword": "\"{{server.build.env.ADMIN_PASSWORD}}\"",
            "trackMedalsRequirement": "{{server.build.env.TRACK_MEDALS}}",
            "safetyRatingRequirement": "{{server.build.env.SAFETY_RATING}}",
            "racecraftRatingRequirement": "{{server.build.env.RACECRAFT}}",
            "password": "\"{{server.build.env.PASSWORD}}\"",
            "spectatorSlots": "{{server.build.env.SPECTATOR_SLOTS}}",
            "spectatorPassword": "\"{{server.build.env.SPECTATOR_PASSWORD}}\""
        }
    }
}

@gOOvER
Copy link
Contributor

gOOvER commented Jan 26, 2023

you can also try this egg; i'll added the parsing, WINEDEBUG -all and moved the Steam Account Check
egg-assetto-corsa-competizione.zip

@eXpansiiVe
Copy link
Author

you can also try this egg; i'll added the parsing, WINEDEBUG -all and moved the Steam Account Check egg-assetto-corsa-competizione.zip

I tried 2 times with this and both times it doesn't even start the server and make my panel to crash. I already had to reinstalled my virtual machine 2 times

@gOOvER
Copy link
Contributor

gOOvER commented Jan 27, 2023

you can also try this egg; i'll added the parsing, WINEDEBUG -all and moved the Steam Account Check egg-assetto-corsa-competizione.zip

I tried 2 times with this and both times it doesn't even start the server and make my panel to crash. I already had to reinstalled my virtual machine 2 times

Its your egg, only with correct parsing. And sry to say, but there is no need to install the WHOLE VPS, only when the egg dont start

@gOOvER
Copy link
Contributor

gOOvER commented Jan 27, 2023

you mean this?

Redirecting stderr to '/home/container/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1669935972
-- type 'quit' to exit --
Loading Steam API...OK
Logging in user 'xxxx' to Steam Public...Warning: failed to set thread priority: set failed for 8: -1: setpriority() failed
Warning: failed to set thread priority: set failed for priority 8
Warning: support for elevated priorities is most likely unavailable, suppressing future warnings
OK
crash_20230127155753_17.dmp[42]: Uploading dump (out-of-process)
/tmp/dumps/crash_20230127155753_17.dmp

./steamcmd/steamcmd.sh: line 39:    22 Segmentation fault      (core dumped) $DEBUGGER "$STEAMEXE" "$@"
First launch will throw some errors. Ignore them
:/home/container$ wine server/accServer.exe
_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
wine: failed to open "server/accServer.exe": c0000135

Copy link
Contributor

@gOOvER gOOvER left a comment

Choose a reason for hiding this comment

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

Listening to TCP 9601 | UDP 9600
Trying to connect to lobby (0 times, interval 10000 s)
Session changed: Practice -> Practice 0
Detected sessionPhase <waiting for drivers> -> <waiting for drivers> (Practice)
TCP connect returns: -1
==ERR: RegisterToLobby TCP connection failed, couldn't connect to the lobby serv
er
Trying to connect to lobby (1 times, interval 13000 s)
TCP connect returns: 0

Please make the ports variable and dont use onyl defaultports

@gOOvER
Copy link
Contributor

gOOvER commented Jan 27, 2023

Sure, that's the default one that gets created whenever you run the server.

It's a .json

{
    "serverName": "ACC Server (please edit settings.json)",
    "adminPassword": "",
    "carGroup": "FreeForAll",
    "trackMedalsRequirement": -1,
    "safetyRatingRequirement": -1,
    "racecraftRatingRequirement": -1,
    "password": "",
    "maxCarSlots": 30,
    "spectatorPassword": "",
    "configVersion": 1
}

Looks like, the parser dont parse config in /dir/subdir/cfg.file and is still broken

@QuintenQVD0
Copy link
Collaborator

Sure, that's the default one that gets created whenever you run the server.
It's a .json

{
    "serverName": "ACC Server (please edit settings.json)",
    "adminPassword": "",
    "carGroup": "FreeForAll",
    "trackMedalsRequirement": -1,
    "safetyRatingRequirement": -1,
    "racecraftRatingRequirement": -1,
    "password": "",
    "maxCarSlots": 30,
    "spectatorPassword": "",
    "configVersion": 1
}

Looks like, the parser dont parse config in /dir/subdir/cfg.file and is still broken

you can parse files but then it has to start with ./ so "./server/cfg/configuration.json": {

@gOOvER
Copy link
Contributor

gOOvER commented Jan 27, 2023

Sure, that's the default one that gets created whenever you run the server.
It's a .json

{
    "serverName": "ACC Server (please edit settings.json)",
    "adminPassword": "",
    "carGroup": "FreeForAll",
    "trackMedalsRequirement": -1,
    "safetyRatingRequirement": -1,
    "racecraftRatingRequirement": -1,
    "password": "",
    "maxCarSlots": 30,
    "spectatorPassword": "",
    "configVersion": 1
}

Looks like, the parser dont parse config in /dir/subdir/cfg.file and is still broken

you can parse files but then it has to start with ./ so "./server/cfg/configuration.json": {

{
    "./server/cfg/configuration.json": {
        "parser": "json",
        "find": {
            "maxConnections": "{{server.build.env.MAX_CONNECTIONS}}"
        }
    },
    "./server/cfg/settings.json": {
        "parser": "json",
        "find": {
            "serverName": "\"{{server.build.env.SERVER_NAME}}\"",
            "adminPassword": "\"{{server.build.env.ADMIN_PASSWORD}}\"",
            "trackMedalsRequirement": "{{server.build.env.TRACK_MEDALS}}",
            "safetyRatingRequirement": "{{server.build.env.SAFETY_RATING}}",
            "racecraftRatingRequirement": "{{server.build.env.RACECRAFT}}",
            "password": "\"{{server.build.env.PASSWORD}}\"",
            "spectatorSlots": "{{server.build.env.SPECTATOR_SLOTS}}",
            "spectatorPassword": "\"{{server.build.env.SPECTATOR_PASSWORD}}\""
        }
    }
}

;)

The parser is broken since a long time. API is more important then fixing and enhance the parser

@QuintenQVD0
Copy link
Collaborator

Sure, that's the default one that gets created whenever you run the server.
It's a .json

{
    "serverName": "ACC Server (please edit settings.json)",
    "adminPassword": "",
    "carGroup": "FreeForAll",
    "trackMedalsRequirement": -1,
    "safetyRatingRequirement": -1,
    "racecraftRatingRequirement": -1,
    "password": "",
    "maxCarSlots": 30,
    "spectatorPassword": "",
    "configVersion": 1
}

Looks like, the parser dont parse config in /dir/subdir/cfg.file and is still broken

you can parse files but then it has to start with ./ so "./server/cfg/configuration.json": {

{
    "./server/cfg/configuration.json": {
        "parser": "json",
        "find": {
            "maxConnections": "{{server.build.env.MAX_CONNECTIONS}}"
        }
    },
    "./server/cfg/settings.json": {
        "parser": "json",
        "find": {
            "serverName": "\"{{server.build.env.SERVER_NAME}}\"",
            "adminPassword": "\"{{server.build.env.ADMIN_PASSWORD}}\"",
            "trackMedalsRequirement": "{{server.build.env.TRACK_MEDALS}}",
            "safetyRatingRequirement": "{{server.build.env.SAFETY_RATING}}",
            "racecraftRatingRequirement": "{{server.build.env.RACECRAFT}}",
            "password": "\"{{server.build.env.PASSWORD}}\"",
            "spectatorSlots": "{{server.build.env.SPECTATOR_SLOTS}}",
            "spectatorPassword": "\"{{server.build.env.SPECTATOR_PASSWORD}}\""
        }
    }
}

;)

The perser is broken since a long time. API is more important then fixing and enhance the parser

Last time I checked the parser worked fine. Multiple files can be broken but indeed but if you only setup 1 it should work fine

@gOOvER
Copy link
Contributor

gOOvER commented Jan 27, 2023

Last time I checked the parser worked fine. Multiple files can be broken but indeed but if you only setup 1 it should work fine

did you checked it with ./dir1/dir2/cfg?

2 files workin fine, also 3 file. I have an egg with 3 cfg files parsed

@QuintenQVD0
Copy link
Collaborator

Last time I checked the parser worked fine. Multiple files can be broken but indeed but if you only setup 1 it should work fine

did you checked it with ./dir1/dir2/cfg?

The ETS2 egg uses it in that way as the config is not in the root dir and it works fine

@gOOvER
Copy link
Contributor

gOOvER commented Jan 27, 2023

Last time I checked the parser worked fine. Multiple files can be broken but indeed but if you only setup 1 it should work fine

did you checked it with ./dir1/dir2/cfg?

The ETS2 egg uses it in that way as the config is not in the root dir and it works fine

but with "file", not with "json"

@QuintenQVD0
Copy link
Collaborator

QuintenQVD0 commented Jan 27, 2023

the yaml package used is almost 8 months old, I am havving a look at the json one.

It is even used 2 times:
https://github.com/pterodactyl/wings/blob/18de96d7b864cd9ba29408029178f344fb5fefd6/go.mod#L48-L49

@QuintenQVD0
Copy link
Collaborator

/

this package is used github.com/goccy/go-json version v0.9.11 and latest is v0.10.0 with this as the changes:
https://github.com/goccy/go-json/releases/tag/v0.10.0

@eXpansiiVe
Copy link
Author

Last time I checked the parser worked fine. Multiple files can be broken but indeed but if you only setup 1 it should work fine

did you checked it with ./dir1/dir2/cfg?

The ETS2 egg uses it in that way as the config is not in the root dir and it works fine

but with "file", not with "json"

I tried both json and file parser but it doesn't seem to work

@eXpansiiVe
Copy link
Author

eXpansiiVe commented Jan 28, 2023

That's how i tried, let me know if i messed up something, i'm going crazy :/

    "/home/container/server/cfg/configuration.json": {
        "parser": "file",
        "find": {
            "maxConnections": "maxConnections: {{server.build.env.MAX_CONNECTIONS}}",
            "udpPort": "udpPort: {{server.build.env.UDP_PORT}}",
            "tcpPort": "tcpPort: {{server.build.env.TCP_PORT}}"
        }
    },
    "/home/container/server/cfg/settings.json": {
        "parser": "file",
        "find": {
            "serverName": "serverName: \"{{server.build.env.SERVER_NAME}}\"",
            "adminPassword": "adminPassword: \"{{server.build.env.ADMIN_PASSWORD}}\"",
            "trackMedalsRequirement": "trackMedalsRequirement: {{server.build.env.TRACK_MEDALS}}",
            "safetyRatingRequirement": "safetyRatingRequirement: {{server.build.env.SAFETY_RATING}}",
            "racecraftRatingRequirement": "racecraftRatingRequirement: {{server.build.env.RACECRAFT}}",
            "password": "password: \"{{server.build.env.PASSWORD}}\"",
            "spectatorSlots": "spectatorSlots: {{server.build.env.SPECTATOR_SLOTS}}",
            "spectatorPassword": "spectatorPassword: \"{{server.build.env.SPECTATOR_PASSWORD}}\""
        }
    }
}

@QuintenQVD0
Copy link
Collaborator

That's how i tried, let me know if i messed up something, i'm going crazy :/

    "/home/container/server/cfg/configuration.json": {
        "parser": "file",
        "find": {
            "maxConnections": "maxConnections: {{server.build.env.MAX_CONNECTIONS}}",
            "udpPort": "udpPort: {{server.build.env.UDP_PORT}}",
            "tcpPort": "tcpPort: {{server.build.env.TCP_PORT}}"
        }
    },
    "/home/container/server/cfg/settings.json": {
        "parser": "file",
        "find": {
            "serverName": "serverName: \"{{server.build.env.SERVER_NAME}}\"",
            "adminPassword": "adminPassword: \"{{server.build.env.ADMIN_PASSWORD}}\"",
            "trackMedalsRequirement": "trackMedalsRequirement: {{server.build.env.TRACK_MEDALS}}",
            "safetyRatingRequirement": "safetyRatingRequirement: {{server.build.env.SAFETY_RATING}}",
            "racecraftRatingRequirement": "racecraftRatingRequirement: {{server.build.env.RACECRAFT}}",
            "password": "password: \"{{server.build.env.PASSWORD}}\"",
            "spectatorSlots": "spectatorSlots: {{server.build.env.SPECTATOR_SLOTS}}",
            "spectatorPassword": "spectatorPassword: \"{{server.build.env.SPECTATOR_PASSWORD}}\""
        }
    }
}

if it works then it work. but normaly you should not need to specify the full path as by default the parser is in /home/container. I think it has to do with the json parer package. I updated it and used custom wings but I do not own that game and I did never spend 5 dollars so I can not claim the dedicated server for free.

https://github.com/QuintenQVD0/wings/blob/07614c373e6ad9b8d572467adcf40d5b1484759a/parser/parser.go#L258

@gOOvER
Copy link
Contributor

gOOvER commented Jan 28, 2023

the problem is; file also dont work. Files never get touched. But i cant test it anymore, because i readded my SteamGuard again

@eXpansiiVe
Copy link
Author

That's how i tried, let me know if i messed up something, i'm going crazy :/

    "/home/container/server/cfg/configuration.json": {
        "parser": "file",
        "find": {
            "maxConnections": "maxConnections: {{server.build.env.MAX_CONNECTIONS}}",
            "udpPort": "udpPort: {{server.build.env.UDP_PORT}}",
            "tcpPort": "tcpPort: {{server.build.env.TCP_PORT}}"
        }
    },
    "/home/container/server/cfg/settings.json": {
        "parser": "file",
        "find": {
            "serverName": "serverName: \"{{server.build.env.SERVER_NAME}}\"",
            "adminPassword": "adminPassword: \"{{server.build.env.ADMIN_PASSWORD}}\"",
            "trackMedalsRequirement": "trackMedalsRequirement: {{server.build.env.TRACK_MEDALS}}",
            "safetyRatingRequirement": "safetyRatingRequirement: {{server.build.env.SAFETY_RATING}}",
            "racecraftRatingRequirement": "racecraftRatingRequirement: {{server.build.env.RACECRAFT}}",
            "password": "password: \"{{server.build.env.PASSWORD}}\"",
            "spectatorSlots": "spectatorSlots: {{server.build.env.SPECTATOR_SLOTS}}",
            "spectatorPassword": "spectatorPassword: \"{{server.build.env.SPECTATOR_PASSWORD}}\""
        }
    }
}

if it works then it work. but normaly you should not need to specify the full path as by default the parser is in /home/container. I think it has to do with the json parer package. I updated it and used custom wings but I do not own that game and I did never spend 5 dollars so I can not claim the dedicated server for free.

https://github.com/QuintenQVD0/wings/blob/07614c373e6ad9b8d572467adcf40d5b1484759a/parser/parser.go#L258

It doesn't work, that's why i was asking if i messed up something

@HerrSammyDE
Copy link
Contributor

That's how i tried, let me know if i messed up something, i'm going crazy :/

    "/home/container/server/cfg/configuration.json": {
        "parser": "file",
        "find": {
            "maxConnections": "maxConnections: {{server.build.env.MAX_CONNECTIONS}}",
            "udpPort": "udpPort: {{server.build.env.UDP_PORT}}",
            "tcpPort": "tcpPort: {{server.build.env.TCP_PORT}}"
        }
    },
    "/home/container/server/cfg/settings.json": {
        "parser": "file",
        "find": {
            "serverName": "serverName: \"{{server.build.env.SERVER_NAME}}\"",
            "adminPassword": "adminPassword: \"{{server.build.env.ADMIN_PASSWORD}}\"",
            "trackMedalsRequirement": "trackMedalsRequirement: {{server.build.env.TRACK_MEDALS}}",
            "safetyRatingRequirement": "safetyRatingRequirement: {{server.build.env.SAFETY_RATING}}",
            "racecraftRatingRequirement": "racecraftRatingRequirement: {{server.build.env.RACECRAFT}}",
            "password": "password: \"{{server.build.env.PASSWORD}}\"",
            "spectatorSlots": "spectatorSlots: {{server.build.env.SPECTATOR_SLOTS}}",
            "spectatorPassword": "spectatorPassword: \"{{server.build.env.SPECTATOR_PASSWORD}}\""
        }
    }
}

if it works then it work. but normaly you should not need to specify the full path as by default the parser is in /home/container. I think it has to do with the json parer package. I updated it and used custom wings but I do not own that game and I did never spend 5 dollars so I can not claim the dedicated server for free.
https://github.com/QuintenQVD0/wings/blob/07614c373e6ad9b8d572467adcf40d5b1484759a/parser/parser.go#L258

It doesn't work, that's why i was asking if i messed up something

normally not. i had just tested it too and it is probably due to the parser or the server itself, because the default settings are always set

@HerrSammyDE
Copy link
Contributor

it doesn't change anything if you change the json config by hand. you can also customize it as you like under "cfg/current", nothing changes there 😅

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Egg Request]: Assetto Corsa Competizione
4 participants