Add OpenTTD (#256)

This commit is contained in:
Greelan 2023-03-26 20:39:53 +11:00 committed by GitHub
parent d8364858bd
commit e30c8d25c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 2566 additions and 0 deletions

87
openttd.kvp Normal file
View File

@ -0,0 +1,87 @@
Meta.DisplayName=OpenTTD
Meta.Description=OpenTTD Dedicated Server
Meta.OS=Windows, Linux
Meta.Arch=x86_64
Meta.Author=Greelan, DARKACE
Meta.URL=https://www.openttd.org/
Meta.DisplayImageSource=steam:1536610
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort}
Meta.ConfigManifest=openttdconfig.json
Meta.MetaConfigManifest=openttdmetaconfig.json
Meta.ConfigRoot=openttd.kvp
Meta.MinAMPVersion=2.4.1.4
Meta.SpecificDockerImage=
Meta.DockerRequired=False
Meta.ContainerPolicy=RequiredOnWindows,SupportedOnLinux
Meta.ContainerPolicyReason=AMP's console is unable to provide console input or output on Windows for the OpenTTD server, which is needed for proper functioning. It is able to do so on Linux, therefore Docker is required on Windows.
Meta.Prerequsites=[]
Meta.ConfigReleaseState=NotSpecified
Meta.NoCommercialUsage=False
App.DisplayName=OpenTTD
App.RootDir=./openttd/
App.BaseDirectory=./openttd/1536610/
App.ExecutableWin=1536610\openttd.exe
App.ExecutableLinux=1536610/openttd
App.WorkingDir=1536610
App.LinuxCommandLineArgs=
App.WindowsCommandLineArgs=
App.CommandLineArgs=-D {{$ApplicationIPBinding}}:{{$ServerPort}} -c config/openttd.cfg {{$FormattedArgs}}
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"1536610"}
App.CommandLineParameterFormat=-{0} "{1}"
App.CommandLineParameterDelimiter=
App.ExitMethod=String
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","Port":3979,"Ref":"ServerPort","Name":"Server Port","Description":"Port for game traffic"},{"Protocol":"UDP","Port":3978,"Ref":"QueryPort","Name":"Query Port","Description":"Port for server list query traffic"},{"Protocol":"Both","Port":3977,"Ref":"ServerAdminPort","Name":"Server Admin Port","Description":"Port for server admin interface"}]
App.AdminPortRef=0
App.PrimaryApplicationPortRef=ServerPort
App.UniversalSleepApplicationUDPPortRef=ServerPort
App.UniversalSleepSteamQueryPortRef=QueryPort
App.MaxUsers=25
App.UseRandomAdminPassword=False
App.RemoteAdminPassword=Password123
App.AdminMethod=STDIO
App.AdminLoginTransform=None
App.RCONConnectDelaySeconds=5
App.RCONConnectRetrySeconds=5
App.RCONHeartbeatMinutes=0
App.RCONHeartbeatCommand=ping
App.TelnetLoginFormat={0}
App.UpdateSources=@IncludeJson[openttdupdates.json]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=False
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.MonitorChildProcess=False
App.MonitorChildProcessWaitMs=100
App.MonitorChildProcessName=
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=
Console.AppReadyRegex=^dbg: \[net\] Listening on [\d.:]+ \(IPv4\)$
Console.UserJoinRegex=^\*\*\* (?<username>.+?) has joined the game \(Client #(?<userid>\d+?)\)$
Console.UserLeaveRegex=^\*\*\* (?<username>.+?) has left the game \((?:.+?)\)$
Console.UserChatRegex=^$
Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$
Console.MetricsRegex=
Console.SuppressLogAtStart=False
Console.ActivateLogRegex=
Console.UserActions={}
Limits.SleepMode=True
Limits.SleepOnStart=False
Limits.SleepDelayMinutes=5
Limits.DozeDelay=2
Limits.AutoRetryCount=5
Limits.SleepStartThresholdSeconds=25

1922
openttdconfig.json Normal file

File diff suppressed because it is too large Load Diff

24
openttdmetaconfig.json Normal file
View File

@ -0,0 +1,24 @@
[
{
"ConfigFile":"config/openttd.cfg",
"ConfigType":"ini",
"AutoMap":true,
"ConfigFormat":"{0} = {1}",
"ConfigFormatRegex":"^(?<key>.+?) = (?<value>.*?)$"
},
{
"ConfigFile":"config/private.cfg",
"ConfigType":"ini",
"AutoMap":true,
"ConfigFormat":"{0} = {1}",
"ConfigFormatRegex":"^(?<key>.+?) = (?<value>.*?)$"
},
{
"ConfigFile":"config/secrets.cfg",
"ConfigType":"ini",
"AutoMap":true,
"ConfigFormat":"{0} = {1}",
"ConfigFormatRegex":"^(?<key>.+?) = (?<value>.*?)$"
}
]

462
openttdopenttd.cfg Normal file
View File

@ -0,0 +1,462 @@
[network]
commands_per_frame = 2
max_commands_in_queue = 16
bytes_per_frame = 8
bytes_per_frame_burst = 256
max_init_time = 100
max_join_time = 500
max_download_time = 1000
max_password_time = 2000
max_lag_time = 500
pause_on_join = true
server_port = 3979
server_admin_port = 3977
server_admin_chat = true
server_game_type = local
autoclean_companies = false
autoclean_unprotected = 12
autoclean_protected = 36
autoclean_novehicles = 0
max_companies = 15
max_clients = 25
restart_game_year = 0
min_active_clients = 0
reload_cfg = false
no_http_content_downloads = false
use_relay_service = ask
[misc]
display_opt = SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION|FULL_DETAIL|WAYPOINTS|SHOW_COMPETITOR_SIGNS
fullscreen = false
video_hw_accel = true
video_vsync = false
support8bpp = no
graphicsset =
soundsset =
musicset =
videodriver =
musicdriver =
sounddriver =
blitter =
language = english.lng
resolution = 640,480
screenshot_format =
savegame_format =
rightclick_emulate = false
small_font =
medium_font =
large_font =
mono_font =
small_size = 0
medium_size = 0
large_size = 0
mono_size = 0
small_aa = false
medium_aa = false
large_aa = false
mono_aa = false
sprite_cache_size_px = 128
player_face = 0
transparency_options = 0
transparency_locks = 0
invisibility_options = 0
keyboard =
keyboard_caps =
last_newgrf_count = 0
gui_zoom = -1
font_zoom = -1
[difficulty]
max_no_competitors = 0
number_towns = 2
industry_density = 5
max_loan = 300000
initial_interest = 2
vehicle_costs = 0
competitor_speed = 2
vehicle_breakdowns = 1
subsidy_multiplier = 2
subsidy_duration = 1
construction_cost = 0
terrain_type = 1
quantity_sea_lakes = 0
economy = false
line_reverse_mode = false
disasters = false
town_council_tolerance = 0
[economy]
town_layout = 0
allow_town_roads = true
found_town = 0
allow_town_level_crossings = true
town_cargogen_mode = 1
station_noise_level = false
inflation = false
multiple_industry_per_town = false
bribe = true
exclusive_rights = true
fund_buildings = true
fund_roads = true
give_money = true
type = 1
allow_shares = false
min_years_for_shares = 6
feeder_payment_share = 75
town_growth_rate = 2
larger_towns = 4
initial_city_size = 2
mod_road_rebuild = true
dist_local_authority = 20
town_noise_population[0] = 800
town_noise_population[1] = 2000
town_noise_population[2] = 4000
infrastructure_maintenance = false
[order]
no_servicing_if_no_breakdowns = true
improved_load = true
selectgoods = true
serviceathelipad = true
gradual_loading = true
[station]
never_expire_airports = false
station_spread = 12
modified_catchment = true
serve_neutral_industries = true
adjacent_stations = true
distant_join_stations = true
[vehicle]
road_side = right
train_acceleration_model = 1
roadveh_acceleration_model = 1
train_slope_steepness = 3
roadveh_slope_steepness = 7
max_train_length = 7
smoke_amount = 1
never_expire_vehicles = false
max_trains = 500
max_roadveh = 500
max_aircraft = 200
max_ships = 300
wagon_speed_limits = true
disable_elrails = false
freight_trains = 1
plane_speed = 4
dynamic_engines = true
plane_crashes = 2
extend_vehicle_life = 0
servint_ispercent = false
servint_trains = 150
servint_roadveh = 150
servint_ships = 360
servint_aircraft = 100
[gui]
autosave = monthly
threaded_saves = true
date_format_in_default_names = iso
show_finances = true
auto_scrolling = 0
scroll_mode = 0
smooth_scroll = false
right_mouse_wnd_close = false
measure_tooltip = true
errmsg_duration = 5
hover_delay_ms = 250
osk_activation = double
toolbar_pos = 1
statusbar_pos = 1
window_snap_radius = 10
window_soft_limit = 20
zoom_min = 0
zoom_max = 5
sprite_zoom_min = 0
population_in_label = true
link_terraform_toolbar = false
smallmap_land_colour = 0
liveries = 2
starting_colour = 16
auto_remove_signals = false
prefer_teamchat = false
scrollwheel_scrolling = 0
scrollwheel_multiplier = 5
pause_on_newgame = false
advanced_vehicle_list = 1
timetable_in_ticks = false
timetable_arrival_departure = true
quick_goto = true
loading_indicators = 1
default_rail_type = 0
signal_gui_mode = 0
default_signal_type = 5
coloured_news_year = 2000
cycle_signal_types = 0
drag_signals_density = 4
drag_signals_fixed_distance = false
semaphore_build_before = 1950
vehicle_income_warn = true
order_review_system = 2
lost_vehicle_warn = true
new_nonstop = true
stop_location = 2
keep_all_autosave = false
autosave_on_exit = false
autosave_on_network_disconnect = true
max_num_autosaves = 16
auto_euro = true
news_message_timeout = 2
show_track_reservation = true
station_numtracks = 1
station_platlength = 5
station_dragdrop = true
station_show_coverage = false
persistent_buildingtools = true
expenses_layout = true
station_gui_group_order = 0
station_gui_sort_by = 0
station_gui_sort_order = 0
missing_strings_threshold = 25
graph_line_thickness = 3
show_newgrf_name = false
show_date_in_logs = false
settings_restriction_mode = 0
developer = 1
newgrf_developer_tools = false
ai_developer_tools = false
scenario_developer = false
newgrf_show_old_versions = false
newgrf_default_palette = 1
console_backlog_timeout = 100
console_backlog_length = 100
refresh_rate = 60
fast_forward_speed_limit = 2500
network_chat_box_width_pct = 40
network_chat_box_height = 25
network_chat_timeout = 20
[linkgraph]
recalc_interval = 4
recalc_time = 16
distribution_pax = 0
distribution_mail = 0
distribution_armoured = 0
distribution_default = 0
accuracy = 16
demand_distance = 100
demand_size = 100
short_path_saturation = 80
[locale]
currency = GBP
units_velocity = metric
units_power = metric
units_weight = metric
units_volume = metric
units_force = si
units_height = metric
digit_group_separator =
digit_group_separator_currency =
digit_decimal_separator =
[sound]
news_ticker = true
news_full = true
new_year = true
confirm = true
click_beep = true
disaster = true
vehicle = true
ambient = true
[music]
playlist = 0
music_vol = 50
effect_vol = 100
custom_1 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
custom_2 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
playing = true
shuffle = false
[news_display]
arrival_player = full
arrival_other = summarized
accident = full
company_info = full
open = summarized
close = summarized
economy = full
production_player = summarized
production_other = off
production_nobody = off
advice = full
new_vehicles = full
acceptance = full
subsidies = summarized
general = full
[pf]
forbid_90_deg = false
roadveh_queue = true
pathfinder_for_trains = 2
pathfinder_for_roadvehs = 2
pathfinder_for_ships = 2
reverse_at_signals = false
wait_oneway_signal = 15
wait_twoway_signal = 41
wait_for_pbs_path = 30
reserve_paths = false
path_backoff_interval = 20
npf.npf_max_search_nodes = 10000
npf.npf_rail_firstred_penalty = 1000
npf.npf_rail_firstred_exit_penalty = 10000
npf.npf_rail_lastred_penalty = 1000
npf.npf_rail_station_penalty = 100
npf.npf_rail_slope_penalty = 100
npf.npf_rail_curve_penalty = 100
npf.npf_rail_depot_reverse_penalty = 5000
npf.npf_rail_pbs_cross_penalty = 300
npf.npf_rail_pbs_signal_back_penalty = 1500
npf.npf_buoy_penalty = 200
npf.npf_water_curve_penalty = 100
npf.npf_road_curve_penalty = 100
npf.npf_crossing_penalty = 300
npf.npf_road_drive_through_penalty = 800
npf.npf_road_dt_occupied_penalty = 800
npf.npf_road_bay_occupied_penalty = 1500
npf.maximum_go_to_depot_penalty = 2000
yapf.disable_node_optimization = false
yapf.max_search_nodes = 10000
yapf.rail_firstred_twoway_eol = false
yapf.rail_firstred_penalty = 1000
yapf.rail_firstred_exit_penalty = 10000
yapf.rail_lastred_penalty = 1000
yapf.rail_lastred_exit_penalty = 10000
yapf.rail_station_penalty = 1000
yapf.rail_slope_penalty = 200
yapf.rail_curve45_penalty = 100
yapf.rail_curve90_penalty = 600
yapf.rail_depot_reverse_penalty = 5000
yapf.rail_crossing_penalty = 300
yapf.rail_look_ahead_max_signals = 10
yapf.rail_look_ahead_signal_p0 = 500
yapf.rail_look_ahead_signal_p1 = -100
yapf.rail_look_ahead_signal_p2 = 5
yapf.rail_pbs_cross_penalty = 300
yapf.rail_pbs_station_penalty = 800
yapf.rail_pbs_signal_back_penalty = 1500
yapf.rail_doubleslip_penalty = 100
yapf.rail_longer_platform_penalty = 800
yapf.rail_longer_platform_per_tile_penalty = 0
yapf.rail_shorter_platform_penalty = 4000
yapf.rail_shorter_platform_per_tile_penalty = 0
yapf.road_slope_penalty = 200
yapf.road_curve_penalty = 100
yapf.road_crossing_penalty = 300
yapf.road_stop_penalty = 800
yapf.road_stop_occupied_penalty = 800
yapf.road_stop_bay_occupied_penalty = 1500
yapf.maximum_go_to_depot_penalty = 2000
yapf.ship_curve45_penalty = 100
yapf.ship_curve90_penalty = 600
[script]
settings_profile = easy
script_max_opcode_till_suspend = 10000
script_max_memory_megabytes = 1024
[ai]
ai_in_multiplayer = true
ai_disable_veh_train = false
ai_disable_veh_roadveh = false
ai_disable_veh_aircraft = false
ai_disable_veh_ship = false
[game_creation]
town_name = english
landscape = temperate
heightmap_height = 30
snow_line_height = 10
snow_coverage = 40
desert_coverage = 50
starting_year = 1950
ending_year = 2050
land_generator = 1
oil_refinery_limit = 32
tgen_smoothness = 1
variety = 0
generation_seed = 2858340425
tree_placer = 2
heightmap_rotation = 0
se_flat_world_height = 1
map_x = 8
map_y = 8
water_borders = 15
custom_town_number = 1
custom_terrain_type = 30
custom_sea_level = 1
min_river_length = 16
river_route_random = 5
amount_of_rivers = 2
[construction]
map_height_limit = 0
build_on_slopes = true
command_pause_level = 1
terraform_per_64k_frames = 4194304
terraform_frame_burst = 4096
clear_per_64k_frames = 4194304
clear_frame_burst = 4096
tree_per_64k_frames = 4194304
tree_frame_burst = 4096
autoslope = true
extra_dynamite = true
max_bridge_length = 64
max_bridge_height = 12
max_tunnel_length = 64
train_signal_side = 1
road_stop_on_town_road = true
road_stop_on_competitor_road = true
raw_industry_construction = 0
industry_platform = 1
freeform_edges = true
extra_tree_placement = 2
[currency]
rate = 1
separator = "."
to_euro = 0
prefix =
suffix = " credits"
[company]
engine_renew = true
engine_renew_months = 6
engine_renew_money = 100000
renew_keep_length = false
[newgrf]
[newgrf-static]
[ai_players]
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
none = start_date=730
[game_scripts]
none =

15
openttdprivate.cfg Normal file
View File

@ -0,0 +1,15 @@
; This file possibly contains private information which can identify you as person.
[private]
[network]
client_name = AMPServer
server_name = AMP Powered OpenTTD Server
connect_to_ip =
last_joined =
[server_bind_addresses]
0.0.0.0 =
[servers]
[bans]

12
openttdsecrets.cfg Normal file
View File

@ -0,0 +1,12 @@
; Do not share this file with others, not even if they claim to be technical support.
; This file contains saved passwords and other secrets that should remain private to you!
[secrets]
[network]
server_password =
rcon_password =
admin_password =
default_company_pass =
network_id =
server_invite_code =
server_invite_code_secret =

44
openttdupdates.json Normal file
View File

@ -0,0 +1,44 @@
[
{
"UpdateStageName":"SteamCMD Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"SteamCMD",
"UpdateSourceData":"1536610",
"UpdateSourceArgs":"1536610",
"UpdateSourceVersion":"{{ServerBranch}}"
},
{
"UpdateStageName":"Create Config Directory",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}config",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Openttd.cfg Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/openttdopenttd.cfg",
"UpdateSourceArgs":"openttd.cfg",
"UpdateSourceTarget":"{{$FullBaseDir}}config",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Private.cfg Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/openttdprivate.cfg",
"UpdateSourceArgs":"private.cfg",
"UpdateSourceTarget":"{{$FullBaseDir}}config",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Secrets.cfg Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/openttdsecrets.cfg",
"UpdateSourceArgs":"secrets.cfg",
"UpdateSourceTarget":"{{$FullBaseDir}}config",
"OverwriteExistingFiles":false
}
]