From bbd0e070a36a0fa21f571125ccce59b44dae360b Mon Sep 17 00:00:00 2001 From: san7890 Date: Sat, 13 Dec 2025 18:52:36 -0700 Subject: [PATCH] Adds In-Game Link To Server Config (#94371) ## About The Pull Request On the tin, just adds a link to https://github.com/tgstation-operations/server-config to the game so people are a little bit more aware of it. Here's how it looks: image ## Why It's Good For The Game More visibility to a public resource, this wasn't feasible before the present situation. It won't show up here unless the config variable is set. ## Changelog :cl: config: If you publicly host a copy of your server's config, you may now link to the public URL in the 'CONFIGURL' setting in the server config. It will show to players in the Escape Menu's Resources Carousel. /:cl: --- .../configuration/entries/general.dm | 3 +++ code/modules/escape_menu/home_page.dm | 14 ++++++++++++++ config/config.txt | 3 +++ icons/hud/escape_menu_icons.dmi | Bin 2949 -> 4291 bytes interface/interface.dm | 11 +++++++++++ 5 files changed, 31 insertions(+) diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index d45ea29b730..f960e6f4d62 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -330,6 +330,9 @@ /datum/config_entry/string/githuburl default = "https://www.github.com/tgstation/tgstation" +/datum/config_entry/string/configurl + default = "https://github.com/tgstation-operations/server-config" + /datum/config_entry/string/discordbotcommandprefix default = "?" diff --git a/code/modules/escape_menu/home_page.dm b/code/modules/escape_menu/home_page.dm index 0ab16e9ab37..02a050535b0 100644 --- a/code/modules/escape_menu/home_page.dm +++ b/code/modules/escape_menu/home_page.dm @@ -157,6 +157,20 @@ )) offset_order -= offset_order[1] + var/configurl = CONFIG_GET(string/configurl) + if(configurl) + resource_panels += page_holder.give_screen_object(new /atom/movable/screen/escape_menu/lobby_button/small/collapsible( + null, + /* hud_owner = */ null, + "Config", + "View the server configuration files", + /* button_screen_loc */ "BOTTOM:30,RIGHT:-20", + CALLBACK(client, TYPE_VERB_REF(/client, config)), + /* button_overlay = */ "config", + /* end_point */ offset_order[1], + )) + offset_order -= offset_order[1] + resource_panels += page_holder.give_screen_object(new /atom/movable/screen/escape_menu/lobby_button/small/collapsible( null, /* hud_owner = */ null, diff --git a/config/config.txt b/config/config.txt index fabfbada772..11bbb603cda 100644 --- a/config/config.txt +++ b/config/config.txt @@ -221,6 +221,9 @@ IPINTEL_REJECT_BAD ## Ban appeals URL - usually for a forum or wherever people should go to contact your admins. # BANAPPEALS http://justanotherday.example.com +## Config URL - Intended for servers that have a repository/public folder/etc. that show off the config that they are running +# CONFIGURL https://github.com/tgstation-operations/server-config + ## System command that invokes yt-dlp, used by Play Internet Sound. ## You can install yt-dlp with ## "pip install yt-dlp" if you have pip installed diff --git a/icons/hud/escape_menu_icons.dmi b/icons/hud/escape_menu_icons.dmi index 8f848aa25e40ec0978d4e584b22126606d372429..a6c24f082ab249e0c7dd6071e5f80df5ec975e8c 100644 GIT binary patch literal 4291 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 literal 2949 zcmV;03wrd4P)V=-0C)k7kwFf^AP_~@a0=4yjV5m0m^P*hdk3IXm=uZ`z+PXpi93V4H2zzKC|*~bqygMisw$Ef zmrl1S$O^C$7vT2xwz5KA(4BWybqNHlGwwGc`#DAus64;`x1ypVdy`XLtOw}s?(VUz zq@={x#k9Al%QBga3EC%ModlCc5~Lo0`}fbm?e4xA>V=e)lp4#67t>_{00)JeIM6)+ z*Vf+GWoMP)KrSK8&A@Y4sZ#P+u0$^V<^D>0L$)9lm-}F@5FH_V}0kIwCSd4sMdY9 z&Kq2GF1iqaeVsQFWw5f~Z~@z?n43uou(DtUIB9@oLzY&_DhOcJ4)%mA1+ePLa=+m+ zAPYZNBml>_FIpsIuZ|O`F4|4S{4_}vWNF7=snzHJD5#1FuveH4>y7B<*f$X1s^yc7 z^rUH1xbyGW_N}peY3ZklkLYlU=I{fVryu*N>}Q(@z;(liap!M3c04%Xm_~HqKMek_ z)8RW2fCIVzNB~YyOqNdAfCLH5^931}LCWG{iK?{1@e6ofn4eT6sYg z_rP}+NSegF@dFGN4C%0~7)K=f9Gm0@N|Tf?o`7{-CzX{0T!)YPv2Ywc=%$X23uT&? zyRQO=k7|PVk1t?^T*wO&H~^fr7R|e_0vr**N<_`kk$k}LM@^%YaKK6mu#y6-qyUGc z(W58m`}hB-e!NKs3`d5(~eZEfwV2$H7pD>oa z{>_-*1pysLz(MEA;+iKbiGXL%p6lya8#gvc1q@-cu!PWA-f5Iz3MCNtG)it@5ez~p zuN-77Yib_ky127vPnhXc-*V%4gKHl&e=tD+uUhr7UR#&n)jDV9Okc;^uz7RddUI17 zS+eBS;s9JX>PhpvYi&CWi-xikmLNX4dOaZOG`_r zfO&<1^4x*%UVy?f>mUsQu3d7C95`<~5Z2%Tk%z#51+2FMUmca-E1h5b` zt3;Q*Zh+rfw1`w!S92YwwY8NjU%grZjsjqSO0UZVOe-kt$O6VRx@#FIy#a9*v~v!AebvlIA9ErvwI%wrVaOgWLhuQo}mX!Bw)Kr7gV^QvW4X- zq(QKL@ya)(VdX4y9lwV(mb<8+m8w_)25UWYpfT?|2*{&DX`N!SFilG)U{MkcmPL;yi^U6PPi0c1z1S|R#JeItSC<; zrvM9p8|A4W6<`Hei3f1hX6sde1p)@R6%`fPo1E%m&2KkO${OO!s`mDDStgS)LCXM~ z==UG60ETy7E6%TX0cnQEn^03XTh|Uf<<~+t()8|TBHRFgDVrT6Uc`i|Ipa} z>kn@T2kd6Syw>TI&&iTSSuhja>-AHa-8awVnn?rf<#wI&+vO7hm1x)M!TSw3>JlajxjL7eXOB!Gv3wE?M>U-9k@3*n zfuR8gl~>jF_# zE}HA9kP~2i{S7j4T#D@6lQygs!GiVT_O0^<3w6-|)^4A>?#_+O`14!~u>*hRau=!W zY&Fu>+I12wSP0;-T(livfC$h)N1D&%?LV^i9%Fe=-!gL_fa}z3QWhMMS~S3Y;OUo* zbmqVg!&(tGt*;OMW`d@zmadecpmH{K(;+Qs7R&`%0gfkNX2?-#CIMi(vi7f`18N>IWBTbR`R6)3TPec5P*A-*pr!S=P36 zL3^@(n)m|O2=*ia_Of7>K4q^wPWeLXiw3}~Gs*DI8sh~x@0VxOWE#=0l=&fp3=3v` zGUR9f(4HnCV3vtScqbLH1>o_(A3)Ra!+u=I0*zH}KZa1B2lKdTS$)xk0L)s+@)OnJ z<<5&Pq61yD)pg4Z+2O5Z`Hl9FX~DuF7jsl4NJKzD4zP-Z*(SvU4=(td(X}Q}h v3vkg%4FFew72qTRj*=8$fsmsKxV6uJA<2=92x~sH00000NkvXXu0mjfRyApD diff --git a/interface/interface.dm b/interface/interface.dm index 3441e36dcab..cdf929c5efa 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -54,6 +54,17 @@ return DIRECT_OUTPUT(src, link(githuburl)) +/client/verb/config() + set name = "config" + set desc = "View the server configuration files." + set hidden = TRUE + + var/configurl = CONFIG_GET(string/configurl) + if(!configurl) + to_chat(src, span_danger("The Config URL is not set in the server configuration.")) + return + DIRECT_OUTPUT(src, link(configurl)) + /client/verb/reportissue() set name = "report-issue" set desc = "Report an issue"