CubeCoders / AMPTemplates

For the AMP community to share Generic Module templates.
MIT License
93 stars 291 forks source link

Vein Dedicated Server Template Attempt #1021

Open Nerderizer opened 2 months ago

Nerderizer commented 2 months ago

https://iceofwraith.github.io/GenericConfigGen/

Game Information:

Game Title: Vein How to obtain: Steam Store Suppoted OSs: Windows, Linux Supports RCON/Console input? Yes

I confirm:

My current attempt: {"_availablePortOptions":["Custom Port","RCON Port"],"_compatibility":"None","Meta_DisplayName":"Vein","Meta_Description":"Vein Dedicated Server","Meta_Arch":"x86_64","_Meta_Author":"UserID10T","Meta_Author":"UserID10T - Made with AMP Config Generator","_Meta_GithubOrigin":"https://github.com/UserID10T - Made with AMP Config Generator/AMPTemplates.git","_Meta_GithubURL":"https://github.com/UserID10T - Made with AMP Config Generator/AMPTemplates","Meta_URL":"https://store.steampowered.com/app/1857950/VEIN/","Meta_MinAMPVersion":"2.4.6.6","Meta_SpecificDockerImage":"","Meta_DockerRequired":"False","Meta_ContainerPolicy":"Supported","Meta_ContainerPolicyReason":"","Meta_Prerequsites":"[]","Meta_EndpointURIFormat":"steam://connect/{ip}:{GenericModule.App.Ports.$SteamQueryPort}","_SupportsWindows":false,"_SupportsLinux":true,"App_AdminMethod":"STDIO","App_HasReadableConsole":true,"App_HasWritableConsole":true,"App_DisplayName":"Vein","App_CommandLineArgs":"{{$PlatformArgs}} {{$FormattedArgs}} -log","App_WindowsCommandLineArgs":"","App_CommandLineParameterFormat":"-{0} \"{1}\"","App_CommandLineParameterDelimiter":" ","App_RapidStartup":"false","App_ApplicationReadyMode":"Immediate","App_ExitMethod":"OS_CLOSE","App_ExitString":"stop","App_ExitTimeout":"30","App_ExitFile":"app_exit.lck","App_SupportsLiveSettingsChanges":"False","App_LiveSettingChangeCommandFormat":"set {0} \"{1}\"","App_ApplicationIPBinding":"0.0.0.0","App_AdminPortRef":"RemoteAdminPort","App_UniversalSleepApplicationUDPPortRef":"GamePort1","App_PrimaryApplicationPortRef":"GamePort1","App_UniversalSleepSteamQueryPortRef":"SteamQueryPort","App_MaxUsers":"8","App_UseRandomAdminPassword":"True","App_RemoteAdminPassword":"","App_AdminLoginTransform":"None","App_RCONConnectDelaySeconds":"30","App_RCONConnectRetrySeconds":"15","App_RCONHeartbeatCommand":"ping","App_RCONHeartbeatMinutes":"0","App_TelnetLoginFormat":"{0}","App_SteamUpdateAnonymousLogin":"True","App_SteamForceLoginPrompt":"False","App_SupportsUniversalSleep":"False","App_WakeupMode":"Any","App_TemplateMatchRegex":"{{(\\$?[\\w]+)}}","App_MonitorChildProcess":"False","App_MonitorChildProcessWaitMs":"1000","App_MonitorChildProcessName":"","App_Compatibility":"None","_App_SteamWorkshopDownloadLocation":"/Vein/Mods","App_SteamWorkshopDownloadLocation":"{{$FullBaseDir}}/Vein/Mods","Console_FilterMatchRegex":"","Console_FilterMatchReplacement":"","Console_ThrowawayMessageRegex":"(WARNING|ERROR): Shader.+","_Console_AppReadyRegex":"Server is ready\\.","_Console_UserJoinRegex":"User \\*{username} \\(\\*{userid}\\) connected from \\[\\*{endpoint}\\]","_Console_UserLeaveRegex":"User \\*{username} \\(\\*{userid}\\) disconnected\\. Reason: \\*{misc}","_Console_UserChatRegex":"\\*{username}: \\*{message}","Console_UpdateAvailableRegex":"^\\[\\d\\d:\\d\\d:\\d\\d\\] \\[INFO\\] A new server update is available! v[\\d\\.]+.$","Console_SuppressLogAtStart":"False","Console_ActivateLogRegex":"","Console_UserActions":"{}","Console_SleepMode":"False","Console_SleepOnStart":"False","Console_SleepDelayMinutes":"5","Console_DozeDelay":"2","Console_AutoRetryCount":"5","Console_SleepStartThresholdSeconds":"25","_PortMappings":[{"_Protocol":"0","Protocol":"Both","Port":"27021","_PortType":"Steam Query Port","_Name":"Steam Query Port","Name":"Steam Query Port","_Description":"","Description":"Port used for main game traffic","Ref":"SteamQueryPort"},{"_Protocol":"2","Protocol":"UDP","Port":"7780","_PortType":"Main Game Port","_Name":"Application Port","Name":"Main Game Port","_Description":"Port for main traffic","Description":"Port used for main game traffic","Ref":"MainGamePort"}],"_ConfigFileMappings":[{"ConfigFile":"Vein/Saved/Config/WindowsServer/GameUserSettings.ini","_ConfigType":"1","ConfigType":"ini","_AutoMap":true,"AutoMap":true}],"_UpdateSourceURL":"","_UpdateSourceGitRepo":"","_UpdateSourceUnzip":false,"_DisplayImageSource":"","_SteamServerAppID":"","_WinExecutableName":"","_LinuxExecutableName":"/Vein/Binaries/Linux/VeinServer-Linux-Test","_AppSettings":[{"DisplayName":"Server Name","Category":"Server Settings","Description":"The name displayed in the server title.","Keywords":"server,name","FieldName":"servername","InputType":"text","IsFlagArgument":false,"ParamFieldName":"servername","IncludeInCommandLine":true,"DefaultValue":"MyVeinServer","Placeholder":"MyVeinServer","Suffix":"","Hidden":false,"SkipIfEmpty":false,"_CheckedValue":"true","_UncheckedValue":"false","_EnumMappings":[],"EnumValues":{}},{"DisplayName":"Max Players","Category":"Server Settings","Description":"The maximum number of players","Keywords":"max,players","FieldName":"maxplayers","InputType":"text","IsFlagArgument":false,"ParamFieldName":"maxplayers","IncludeInCommandLine":true,"DefaultValue":"6","Placeholder":"6","Suffix":"","Hidden":false,"SkipIfEmpty":false,"_CheckedValue":"true","_UncheckedValue":"false","_EnumMappings":[],"EnumValues":{}}],"_UpdateStages":[{"UpdateStageName":"Vein Server Download","_UpdateSourcePlatform":"1","UpdateSourcePlatform":"Linux","_UpdateSource":"8","UpdateSource":"SteamCMD","UpdateSourceData":"2131400","UpdateSourceArgs":"2131400","UpdateSourceVersion":"public","UpdateSourceTarget":"","UnzipUpdateSource":false,"OverwriteExistingFiles":false,"_ForceDownloadPlatform":"1","ForceDownloadPlatform":"Linux","UpdateSourceConditionSetting":null,"UpdateSourceConditionValue":null,"DeleteAfterExtract":true,"OneShot":true}],"Console_AppReadyRegex":"^Server\\s+is\\s+ready\\\\\\.$","Console_UserJoinRegex":"^User\\s+\\\\(?<username>.+)\\s+\\\\\\(\\\\(?<userid>.+)\\\\\\)\\s+connected\\s+from\\s+\\\\\\[\\\\(?<endpoint>.+)\\\\\\]$","Console_UserLeaveRegex":"^User\\s+\\\\(?<username>.+)\\s+\\\\\\(\\\\(?<userid>.+)\\\\\\)\\s+disconnected\\\\\\.\\s+Reason:\\s+\\\\.*$","Console_UserChatRegex":"^\\\\(?<username>.+):\\s+\\\\(?<message>.+)$","Meta_OS":2,"Meta_ConfigManifest":"veinconfig.json","Meta_MetaConfigManifest":"veinmetaconfig.json","_Meta_PortsManifest":"veinports.json","_Meta_StagesManifest":"veinupdates.json","Meta_ConfigRoot":"vein.kvp","App_RootDir":"./vein/","_SteamCheck":"2131400","Meta_DisplayImageSource":"steam:2131400","App_BaseDirectory":"./vein/2131400/","App_WorkingDir":"2131400","_SteamClientAppID":"2131400","App_ExecutableWin":"2131400\\","App_ExecutableLinux":"2131400//Vein/Binaries/Linux/VeinServer-Linux-Test","_App_LinuxCommandLineArgsCompat":"","_App_LinuxCommandLineArgsInput":"","App_LinuxCommandLineArgs":"","App_Ports":"@IncludeJson[veinports.json]","App_UpdateSources":"@IncludeJson[veinupdates.json]","Errors":[],"isValid":true}

Greelan commented 2 months ago

I take it this is a cry for help lol

Template in Greelan/AMPTemplates:dev

Some weirdness about it tho - eg the MaxPlayers setting is stripped from Game.ini when the server is shut down

Guess that is what you get with a game that is in its demo release phase lol

Nerderizer commented 2 months ago

Yeeeeah, the maxplayers value was something I found when trying to obtain all of the usable in game values. My latest launch wasn't populating game.ini so I couldn't dig into them. I can probably manage getting the game.ini values so the template can be updated.

If you prefer, I can take the template back to get those game settings, or you're welcome to keep it as a live template for everyone. I just want to get used to this process so I can make more.

My next plan is Qanga, another early demo game. Heh.

You are 100% right, this is what I get, and I already am aware the game dev has said he's lazy and hasn't kept up with the dedicated server releases lol.

Greelan commented 2 months ago

There are a bunch of issues with your template - some due to the config generator - and this is not the way to make them available anyway

I've already seen the notion website with the server params. But it would be pushing shit uphill trying to maintain a template for such an early access server. Better to wait

Greelan commented 2 months ago

To be perfectly honest, if you want to get into templates, better to look at existing ones and learn from those and use them as a base. For example there are lots of UE servers that already have templates

Nerderizer commented 2 months ago

I tried looking through the .kvp files and all, which is exactly how I progressed since I first posted.

I looked at the Ark SE since it used the GenericModule.kvp.

I found the documentation confusing, so I just struggle bussed my way through understanding it, and so what I had was very chopped up from things I "thought" belonged in the kvp.

Greelan commented 2 months ago

Lol, Ark is one of the worst ones possible to start with

Just look at my VEIN template. Tho I was lazy with the Game.ini creation since I couldn't be bothered having one downloaded from GH (which is what most templates do if the config file has to be created)

Nerderizer commented 2 months ago

Yeah, I've learned that almost everything with Ark is awful.

I was already poking around the VEIN template and spotted a lot of what you were talking about. I reuploaded it to my repo, so I can mess with it(I have not gotten good with forking yet, so please tell me to remove it and done.)

I really appreciate the help and clarity. I'm hoping I can drum up more games and applications once I'm comfortable with the generator. I've been creating some python projects for content creators and Discord, which may be useful for others. and a deployable webserver would be convenient for that. I just like projects.

Greelan commented 2 months ago

No disrespect to Ice, but I suggest not using the generator. It has some bugs and is incomplete. I only do stuff manually - after 150+ templates, it gets quicker (VEIN took me less than an hour). Every server, even those based on the same engine, has differences and quirks and the generator doesn't cater for them, or the tricks often needed

IceOfWraith commented 2 months ago

No disrespect taken. I agree it needs attention.

Greelan commented 2 months ago

I could quickly knock up a basic Qanga template and you could play around with it

Nerderizer commented 2 months ago

Your help with Qanga would be fantastic, and would give me a relevant comparison to better understand what is unique between templates when creating them, so I can more manually manage them. The generator was an awesome place to get started with it, and once I started exporting and manually editing it helped me a lot.

Nerderizer commented 2 months ago

Heads up, that VEIN AppID you used is for the full unreleased VEIN. It needs the Vein Demo ID for now, 2082470.

Nerderizer commented 2 months ago

Otherwise it screams because the steamappid.txt doesn't match the cert it should. Requires .kvp update and restart of game server, adding/replacing in steamappid.txt isn't enough it scrubs it periodically.

Greelan commented 2 months ago

Fixed

Nerderizer commented 2 months ago

Also found Server Branch is not populating with the server config field options.

Greelan commented 2 months ago

Wdym?

Nerderizer commented 2 months ago

image

Nerderizer commented 2 months ago

{ "DisplayName":"Server Branch", "Category":"Updates", "Subcategory":"Steam Downloads:download", "Description":"Sets the server branch to install. Update the server after switching branches", "Keywords":"server,branch,depot", "FieldName":"ServerBranch", "InputType":"enum", "ParamFieldName":"ServerBranch", "DefaultValue":"public", "EnumValues":{ "public":"Public (default)", "hotfix":"Hotfix builds (hotfix)", "canary":"Bleeding-edge builds (canary)" } }

Greelan commented 2 months ago

Look under Updates / Steam Downloads ....

Nerderizer commented 2 months ago

Oh lord you're right the tag is right there Category Updates.

Sorry about that. The server is up and running, so thank you for taking care of it.

Nerderizer commented 2 months ago

Now I see how you can slap it under any menu, thank you!!!

Greelan commented 2 months ago

QANGA is also now in my dev branch

Nerderizer commented 2 months ago

Thank you!

Game Port having issues binding, but I'll update it and figure out how to make a pull request, if that was the right term. I'm green with gh too.

Greelan commented 2 months ago

The server uses Steam sockets, so never opens a socket on the game port. They still recommend including the argument, so that is what I have done

If you have anything to add, pass them on to me