Add Hurtworld (#114)

* Initial commit

* Initial commit

* Final updates

Remove structurecomplexitylimit and spawncooldown settings as they throw errors. No idea why

Remove enablesharedenvironment (deprecated setting)

Update for new ports system
This commit is contained in:
Greelan 2022-05-28 09:01:02 +10:00 committed by GitHub
parent 6eb5cccb13
commit ed34adccfe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 449 additions and 0 deletions

59
hurtworld.kvp Normal file
View File

@ -0,0 +1,59 @@
Meta.DisplayName=Hurtworld
Meta.Description=Hurtworld Dedicated Server
Meta.OS=Windows, Linux
Meta.Author=Greelan
Meta.URL=http://hurtworld.com
Meta.DisplayImageSource=steam:405100
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort}
Meta.ConfigManifest=hurtworldconfig.json
Meta.MetaConfigManifest=hurtworldmetaconfig.json
Meta.ConfigRoot=hurtworld.kvp
Meta.MinAMPVersion=2.3.3
Meta.SpecificDockerImage=
Meta.Prerequsites=[]
App.DisplayName=Hurtworld
App.RootDir=./hurtworld/
App.BaseDirectory=./hurtworld/405100/
App.ExecutableWin=405100\Hurtworld.exe
App.ExecutableLinux=405100/Hurtworld.x86_64
App.WorkingDir=405100
App.LinuxCommandLineArgs=
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} -batchmode -nographics -exec "host {{$GamePort}} {{map}};queryport {{$QueryPort}};{{$FormattedArgs}}" -logfile "serverlog.txt"
App.AppSettings={}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"393420"}
App.CommandLineParameterFormat={0} {1}
App.CommandLineParameterDelimiter=;
App.ExitMethod=OS_CLOSE
App.ExitTimeout=30
App.ExitString=quit
App.ExitFile=app_exit.lck
App.HasWriteableConsole=True
App.HasReadableConsole=True
App.SupportsLiveSettingsChanges=False
App.LiveSettingChangeCommandFormat=set {0} "{1}"
App.ApplicationIPBinding=0.0.0.0
App.Ports=[{"Protocol":"Both","Name":"Game Port","Description":"Port for game traffic","Port":12871,"Ref":"GamePort"},{"Protocol":"Both","Name":"Query Port","Description":"Port for server query traffic","Port":12881,"Ref":"QueryPort"}]
App.PrimaryApplicationPortRef=GamePort
App.MaxUsers=20
App.UseRandomAdminPassword=False
App.RemoteAdminPassword=Password123
App.AdminMethod=STDIO
App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"405100"},{"UpdateStageName":"uMod Windows","UpdateSourcePlatform":"Windows","UpdateSource":"FetchURLFromJQ","UpdateSourceData":"https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest","UpdateSourceArgs":"$.assets[1].browser_download_url","UpdateSourceTarget":"{{$FullBaseDir}}","UnzipUpdateSource":true,"OverwriteExistingFiles":true,"UpdateSourceConditionSetting":"uMod","UpdateSourceConditionValue":"true","DeleteAfterExtract":true},{"UpdateStageName":"uMod Linux","UpdateSourcePlatform":"Linux","UpdateSource":"FetchURLFromJQ","UpdateSourceData":"https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest","UpdateSourceArgs":"$.assets[0].browser_download_url","UpdateSourceTarget":"{{$FullBaseDir}}","UnzipUpdateSource":true,"OverwriteExistingFiles":true,"UpdateSourceConditionSetting":"uMod","UpdateSourceConditionValue":"true","DeleteAfterExtract":true}]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.ApplicationReadyMode=Immediate
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$
Console.AppReadyRegex=
Console.UserJoinRegex=
Console.UserLeaveRegex=
Console.UserChatRegex=
Console.UpdateAvailableRegex=
Console.SuppressLogAtStart=False
Console.ActivateLogRegex=
Console.UserActions={}

381
hurtworldconfig.json Executable file
View File

@ -0,0 +1,381 @@
[
{
"DisplayName":"Game Port",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$GamePort",
"InputType":"number",
"IsFlagArgument":false,
"Hidden":true,
"ParamFieldName":"host",
"IncludeInCommandLine":false,
"DefaultValue":"12871",
"EnumValues":{}
},{
"DisplayName":"Query Port",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$QueryPort",
"InputType":"number",
"IsFlagArgument":false,
"Hidden":true,
"ParamFieldName":"queryport",
"IncludeInCommandLine":false,
"DefaultValue":"12881",
"EnumValues":{}
},{
"DisplayName":"Server Name",
"Category":"Server Settings",
"Description":"Server name as shown in the server browser",
"Keywords":"name",
"FieldName":"servername",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"servername",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"My Hurtworld Server",
"EnumValues":{}
},{
"DisplayName":"Player Limit",
"Category":"Server Settings",
"Description":"Maximum number of players that may connect to the server",
"Keywords":"maximum,players",
"FieldName":"$MaxUsers",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"maxplayers",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"20",
"Suffix":"players",
"EnumValues":{}
},{
"DisplayName":"Map",
"Category":"Server Settings",
"Description":"Sets the map to load on the server",
"Keywords":"map",
"FieldName":"map",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"map",
"IncludeInCommandLine":false,
"DefaultValue":"nullius",
"Placeholder":"nullius",
"EnumValues":{}
},{
"DisplayName":"Enable Creative Mode",
"Category":"Server Settings",
"Description":"If enabled, creative mode will apply (free build)",
"Keywords":"creative,mode",
"FieldName":"creativemode",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"creativemode",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},{
"DisplayName":"Add Admin",
"Category":"Server Settings",
"Description":"Steam64 ID of server admin. [Find Steam64 IDs](https://steamidfinder.com/)",
"Keywords":"admin",
"FieldName":"addadmin",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"addadmin",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"",
"Placeholder":"58673958674589375",
"EnumValues":{}
},{
"DisplayName":"Install uMod",
"Category":"Server Settings",
"Description":"If enabled, auto-installs uMod when the server is updated",
"Keywords":"install,umod",
"FieldName":"uMod",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"uMod",
"IncludeInCommandLine":false,
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},{
"DisplayName":"Load Steam Workshop Mods",
"Category":"Server Settings",
"Description":"Space-separated list of Steam Workshop mod IDs to load on the server",
"Keywords":"mods",
"FieldName":"loadmod",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"loadmod",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"",
"Placeholder":"714026119 704019543",
"EnumValues":{}
},{
"DisplayName":"Enable Autowipe",
"Category":"Server Settings",
"Description":"If enabled, server wipe will be enabled",
"Keywords":"autowipe,wipe",
"FieldName":"autowipe",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"autowipe",
"IncludeInCommandLine":true,
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},{
"DisplayName":"Wipe Interval",
"Category":"Server Settings",
"Description":"Sets the server wipe schedule, as shown in the server browser. A negative number will show no wipe. Needs wipe enabled to work",
"Keywords":"wipe,interval,schedule",
"FieldName":"wipeinterval",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"wipeinterval",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"1209600",
"Suffix":"seconds",
"Placeholder":"1209600",
"EnumValues":{}
},{
"DisplayName":"Player Loot Mode",
"Category":"Server Settings",
"Description":"Sets the player loot mode. Note: Alternate loot modes are experimental and may not work properly",
"Keywords":"player,loot",
"FieldName":"playerlootmode",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"playerlootmode",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"",
"EnumValues":{
"":"Drop everything (default)",
"1":"Drop backpack contents only",
"2":"Drop backpack and one random item",
"3":"Drop backpack and two random items",
"4":"Drop backpack and three random items",
"5":"Drop nothing",
"6":"Destroy everything"
}
},{
"DisplayName":"Enable Autosave",
"Category":"Server Settings",
"Description":"If enabled, server will be autosaved",
"Keywords":"autosave",
"FieldName":"autosaveenabled",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"autosaveenabled",
"IncludeInCommandLine":true,
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},{
"DisplayName":"Auto Backup Interval",
"Category":"Server Settings",
"Description":"Sets how often the autosave should be backed up. Specify -1 to disable backup",
"Keywords":"backup,interval",
"FieldName":"autobackupinterval",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"autobackupinterval",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"7200",
"Suffix":"seconds",
"Placeholder":"7200",
"EnumValues":{}
},{
"DisplayName":"Enable Structure Decay",
"Category":"Server Settings",
"Description":"If enabled, structures will decay",
"Keywords":"structure,decay",
"FieldName":"structuredecayenabled",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"structuredecayenabled",
"IncludeInCommandLine":true,
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},{
"DisplayName":"Structure Decay Frequency",
"Category":"Server Settings",
"Description":"Sets how often a structure will be damaged by decay. Low values may have a performance impact",
"Keywords":"structure,decay,frequency",
"FieldName":"structuredecayfrequency",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"structuredecayfrequency",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"600",
"Placeholder":"600",
"EnumValues":{}
},{
"DisplayName":"Structure Decay Damage",
"Category":"Server Settings",
"Description":"Sets how much damage occurs when a structure decays. Specify one value for a set damage amount, or specify two values for a range",
"Keywords":"structure,decay,damage",
"FieldName":"structuredecaydamage",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"structuredecaydamage",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"5 10",
"Placeholder":"5 10",
"EnumValues":{}
},{
"DisplayName":"Structure Decay Start Time",
"Category":"Server Settings",
"Description":"Sets how long a structure must be both unclaimed and unmodified, before it begins to decay",
"Keywords":"structure,decay,modify,time",
"FieldName":"structuredecaymodifytime",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"structuredecaymodifytime",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"86400",
"Placeholder":"86400",
"EnumValues":{}
},{
"DisplayName":"Display Connection/Disconnection Messages",
"Category":"Server Settings",
"Description":"If enabled, connection and disconnection messages will be displayed",
"Keywords":"connection,disconnection,message",
"FieldName":"chatconnectionmessagesenabled",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"chatconnectionmessagesenabled",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},{
"DisplayName":"Display Death Messages",
"Category":"Server Settings",
"Description":"If enabled, death messages will be displayed",
"Keywords":"death,message",
"FieldName":"chatdeathmessagesenabled",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"chatdeathmessagesenabled",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},{
"DisplayName":"Chat Spam Filter Threshold",
"Category":"Server Settings",
"Description":"Sets the chat spam filter threshold. Lower values mean players will be muted sooner",
"Keywords":"chat,spam,filter",
"FieldName":"chatspambudget",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"chatspambudget",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"200",
"Placeholder":"200",
"EnumValues":{}
},{
"DisplayName":"Spawner Time",
"Category":"Server Settings",
"Description":"Sets how much time spawners can take",
"Keywords":"spawner,time",
"FieldName":"spawnercellupdatesperframe",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"spawnercellupdatesperframe",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"20",
"Placeholder":"20",
"EnumValues":{}
},{
"DisplayName":"Stake Deauthorise Time",
"Category":"Server Settings",
"Description":"Sets the time a full ownership stake will take to deauthorise",
"Keywords":"stake,deauthorise",
"FieldName":"stakedeauthtime",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"stakedeauthtime",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"7200",
"Suffix":"seconds",
"Placeholder":"7200",
"EnumValues":{}
},{
"DisplayName":"Target FPS",
"Category":"Server Settings",
"Description":"Sets the target FPS for the server. Specify -1 for unlimited (not recommended)",
"Keywords":"target,fps",
"FieldName":"targetfps",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"targetfps",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"100",
"Placeholder":"100",
"EnumValues":{}
},{
"DisplayName":"Load Balancer Resources",
"Category":"Server Settings",
"Description":"Sets how many resources the Load Balancer can use per frame",
"Keywords":"load,balancer,resources",
"FieldName":"loadbalancerframebudget",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"loadbalancerframebudget",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"100",
"Placeholder":"100",
"EnumValues":{}
},{
"DisplayName":"Enable Load Balancer Monitoring",
"Category":"Server Settings",
"Description":"If enabled, allows monitoring of the Load Balancer (view using \"dumploadbalancer\" command). Do not leave this enabled, as it has significant overhead",
"Keywords":"monitor,load,balancer",
"FieldName":"monitorloadbalancer",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"monitorloadbalancer",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
}
]

9
hurtworldmetaconfig.json Normal file
View File

@ -0,0 +1,9 @@
[
{
"ConfigFile":"autoexec.cfg",
"AutoMap":true,
"ConfigType":"kvp",
"ConfigFormat":"{0} {1}",
"ConfigFormatRegex":"^(?<key>.+?) (?<value>.*?)$"
}
]