Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
61296d7
Setup
Oblisk234 Jul 3, 2025
b2d5bb5
Changelog and motd
Oblisk234 Jul 9, 2025
04de679
IPintel
Oblisk234 Jul 20, 2025
2c3b38d
Debug
Oblisk234 Jul 20, 2025
23d7bad
Further debugging
Oblisk234 Jul 23, 2025
1ac4214
Fix opendream linting
Oblisk234 Jul 23, 2025
37e7d36
More debugging
Oblisk234 Jul 23, 2025
ba253f9
And more debugging
Oblisk234 Jul 23, 2025
a98433e
Init order
Oblisk234 Jul 23, 2025
4f2f7c3
Initialize
Oblisk234 Jul 23, 2025
679080c
Client
Oblisk234 Jul 23, 2025
9ef4608
That didn't work
Oblisk234 Jul 23, 2025
7162690
Duplicates
Oblisk234 Jul 23, 2025
2a52264
Not ready
Oblisk234 Jul 23, 2025
c719b5e
Alternate implementation
Oblisk234 Jul 23, 2025
c82fbf9
Restore init order
Oblisk234 Jul 23, 2025
98d535e
List var
Oblisk234 Jul 23, 2025
a5d549c
And more debugging
Oblisk234 Jul 23, 2025
fc655a2
Even more debugging
Oblisk234 Jul 23, 2025
5977564
Not use the local proc
Oblisk234 Jul 25, 2025
1bd1062
Index
Oblisk234 Jul 25, 2025
00123e2
num2text
Oblisk234 Jul 25, 2025
837ed3b
Replace world.Export
Oblisk234 Jul 27, 2025
ef074e1
Fix
Oblisk234 Jul 27, 2025
fbf4163
Fix
Oblisk234 Jul 27, 2025
d3a9713
Not file
Oblisk234 Jul 27, 2025
5bd4075
Remove
Oblisk234 Jul 27, 2025
fff8612
True
Oblisk234 Jul 27, 2025
f1903db
Try this
Oblisk234 Jul 30, 2025
a6c5c62
)
Oblisk234 Jul 30, 2025
5632b57
Remove
Oblisk234 Aug 3, 2025
dbba409
Remove space
Oblisk234 Aug 22, 2025
2dedc58
Change hub status
Oblisk234 Aug 22, 2025
211433c
Update byond minor version to latest
Oblisk234 Aug 24, 2025
d9f9fa2
Restore hub authentication
Oblisk234 Aug 24, 2025
c6ba28e
Fix hub name
Oblisk234 Aug 28, 2025
e223419
Non-24hour basis
Oblisk234 Aug 29, 2025
555ae6d
Fix this once and for all
Oblisk234 Sep 7, 2025
ac3589b
No prompting forever
Oblisk234 Sep 7, 2025
0243815
Spelling
Oblisk234 Sep 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions code/__byond_version_compat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@

//If you update these values, update the message in the #error
#define MAX_BYOND_MAJOR 516
#define MAX_BYOND_MINOR 1659
#define MAX_BYOND_MINOR 1667
#if ((DM_VERSION > MAX_BYOND_MAJOR) || (DM_BUILD > MAX_BYOND_MINOR)) && !defined(SPACEMAN_DMM)
#error Your version of BYOND is too new to compile this project.
#error Download version 515.1659 at www.byond.com/download/build/515/515.1659_byond.exe
#error Download version 516.1667 at www.byond.com/download/build/515/515.1659_byond.exe
#endif

// 515 split call for external libraries into call_ext
Expand Down
9 changes: 7 additions & 2 deletions code/controllers/subsystem/echelon.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(echelon)
name = "ECHELON"
init_order = INIT_ORDER_ECHELON
flags = SS_NO_FIRE
flags = SS_NO_FIRE | SS_NO_INIT
var/enabled = TRUE

/datum/controller/subsystem/echelon/Initialize(timeofday, zlevel)
Expand Down Expand Up @@ -32,6 +32,7 @@ SUBSYSTEM_DEF(echelon)

if(IsAdminAdvancedProcCall()) return

/*
var/datum/DBQuery/query_get_cached_matches = SSdbcore.NewQuery({"
SELECT
JSON_VALUE(data, "$.should_block")
Expand Down Expand Up @@ -88,6 +89,10 @@ SUBSYSTEM_DEF(echelon)


return json["should_block"] == "true"
*/
var/datum/ipintel/val = get_ip_intel(ip)
var/rating_bad = CONFIG_GET(number/ipintel_rating_bad)
return rating_bad < val.intel


/datum/controller/subsystem/echelon/proc/is_match(ckey, ip, allow_exceptions=TRUE)
Expand All @@ -101,4 +106,4 @@ SUBSYSTEM_DEF(echelon)
return is_using_proxy(ip)




6 changes: 3 additions & 3 deletions code/game/machinery/pipe/pipe_dispenser.dm
Original file line number Diff line number Diff line change
Expand Up @@ -101,14 +101,14 @@


//Allow you to drag-drop disposal pipes and transit tubes into it
/obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/pipe, mob/usr)
if(usr.incapacitated())
/obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/pipe, mob/user)
if(user.incapacitated())
return

if (!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod))
return

if (get_dist(usr, src) > 1 || get_dist(src,pipe) > 1 )
if (get_dist(user, src) > 1 || get_dist(src,pipe) > 1 )
return

if (pipe.anchored)
Expand Down
13 changes: 9 additions & 4 deletions code/modules/admin/ipintel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,18 @@
if (!SSipintel.enabled)
return

var/list/http[] = world.Export("http://[CONFIG_GET(string/ipintel_domain)]/check.php?ip=[ip]&contact=[CONFIG_GET(string/ipintel_email)]&format=json&flags=f")
var/datum/http_request/http = new()
http.prepare(RUSTG_HTTP_METHOD_GET, "http://[CONFIG_GET(string/ipintel_domain)]/check.php?ip=[ip]&contact=[CONFIG_GET(string/ipintel_email)]&format=json&flags=f")
http.begin_async()
UNTIL(http.is_complete())
var/datum/http_response/res = http.into_response()
//var/list/http[] = world.Export("http://[CONFIG_GET(string/ipintel_domain)]/check.php?ip=[ip]&contact=[CONFIG_GET(string/ipintel_email)]&format=json&flags=f")

if (http)
var/status = text2num(http["STATUS"])
if (res)
var/status = text2num(res.status_code)

if (status == 200)
var/response = json_decode(file2text(http["CONTENT"]))
var/response = json_decode(res.body)
if (response)
if (response["status"] == "success")
var/intelnum = text2num(response["result"])
Expand Down
2 changes: 2 additions & 0 deletions code/modules/client/verbs/linkforum.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* Forum won't be used.
/client/verb/linkforum()
set category = "OOC"
set name = "Link Forum Account"
Expand All @@ -21,3 +22,4 @@
/client/proc/givelinkforum()
add_verb(src, /client/verb/linkforum)
to_chat(src, span_notice("Your forum verification link has expired, and the verb has been returned to you. You can ignore this if you have already linked your accounts."), confidential = TRUE)
*/
2 changes: 1 addition & 1 deletion code/modules/clothing/chameleon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@
var/copying = FALSE
var/in_use = FALSE

/datum/action/cooldown/chameleon_copy/InterceptClickOn(mob/living/caller, params, atom/target)
/datum/action/cooldown/chameleon_copy/InterceptClickOn(mob/living/caller_but_not_a_byond_built_in_proc, params, atom/target)
click_with_power(target)

/datum/action/cooldown/chameleon_copy/Grant(mob/M)
Expand Down
20 changes: 7 additions & 13 deletions config/admin_ranks.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,25 @@
# +BAN = the ability to ban, jobban and fullban
# +STEALTH = the ability to stealthmin (make yourself appear with a fake name to everyone but other admins
# +POSSESS = the ability to possess objects
# +POLL (or +POLL) = the ability to create in game server polls (requires DB)
# +POLL = the ability to create in game server polls (requires DB)
# +BUILD (or +BUILDMODE) = the ability to use buildmode
# +SERVER = higher-risk admin verbs and abilities, such as those which affect the server configuration.
# +DEBUG = debug tools used for diagnosing and fixing problems. It's useful to give this to coders so they can investigate problems on a live server.
# +VAREDIT = everyone may view viewvars/debugvars/whatever you call it. This keyword allows you to actually EDIT those variables.
# +RIGHTS (or +PERMISSIONS) = allows you to promote and/or demote people.
# +SOUND (or +SOUNDS) = allows you to upload and play sounds
# +SPAWN (or +CREATE) = mob transformations, spawning of most atoms including mobs (high-risk atoms, e.g. blackholes, will require the +FUN flag too)
# +AUTOLOGIN = admin gains powers upon connect. This defaults to on, you can use -AUTOLOGIN to make a role require using the readmin verb to gain powers. (this does not effect the admin's ability to walk past bans or other on-connect limitations like panic bunker or pop limit.)
# +DBRANKS = when sql-based admin loading is enabled, allows for non-temporary changes in the permissions panel to be saved (requires DB)
# +AUTOLOGIN (or +AUTOADMIN) = admin gains powers upon connect. This defaults to on, you can use -AUTOLOGIN to make a role require using the readmin verb to gain powers. (this does not effect the admin's ability to walk past bans or other on-connect limitations like panic bunker or pop limit.)
# +DBRANKS (or +PERSISTPERMS) = when sql-based admin loading is enabled, allows for non-temporary changes in the permissions panel to be saved (requires DB)
# +EVERYTHING (or +HOST or +ALL) = Simply gives you everything without having to type every flag
# +DEV = For potentially server ending procs
# END_KEYWORDS


Host = +EVERYTHING

Council Member = +EVERYTHING

Head Developer = +EVERYTHING

SysOp = +EVERYTHING
Host = +ADMIN +BAN +BUILDMODE +DEBUG +FUN +PERMISSIONS +PERSISTPERMS +POSSESS +SERVER +SOUND +SPAWN +STEALTH +VAREDIT

Administrator = +STEALTH +ADMIN +BASIC +BAN +SPAWN +VAREDIT +DEBUG +SERVER +FUN +TICKET +BUILD +AUTOLOGIN
Administrator = +ADMIN +AUTOLOGIN +BAN +BUILDMODE +DEBUG +FUN +POSSESS +SERVER +SOUND +SPAWN +STEALTH +VAREDIT

Admin Observer = +STEALTH +AUTOLOGIN
Admin Observer = +AUTOLOGIN +STEALTH

Maintainer = +STEALTH +ADMIN +VAREDIT +DEBUG +SERVER +BASIC +SPAWN +POLL +DEV
Maintainer = +ADMIN +DEBUG +SERVER +SPAWN +STEALTH +VAREDIT
23 changes: 10 additions & 13 deletions config/motd.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
<h1 style="font-family: Verdana; margin: 0px; padding: 0px; text-align: center;">Welcome to Yogstation 13!</h1><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">We have a support ticket system at Yogstation. If you have an issue, please file a ticket by pressing <b>F1</b> or going to the <b>admin tab</b> and clicking <b>Ahelp</b>. An admin will help you as soon as possible.</span><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">We are constantly seeking dedicated new <span style="font-weight: bold; color: #dd4400;">admins</span>, <span style="font-weight: bold; color: #dd4400;">coders</span>, <span style="font-weight: bold; color: #dd4400;">spriters</span>, <span style="font-weight: bold; color: #dd4400;">mappers</span>, <span style="font-weight: bold; color: #dd4400;">Wiki Editors</span>, and <span style="font-weight: bold; color: #dd4400;">mentors</span> to improve our server. Without them, you wouldn't have a server to play on. If you feel you may be a good addition to our Admin or Mentor team, are interested in joining the development team, or would like to get involved with editing the Wiki, please see the links listed below.</span><br>
<h1 style="font-family: Courier; margin: 0px; padding: 0px; text-align: center;">Welcome to HogStation!</h1><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">If you need to report a problem to the server administrators, press <b>F1</b> or go to the <b>admin tab</b> and click <b>Ahelp</b>.</span><br><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">If you need help learning how to play, press <b>F2</b> or go to the <b>mentor tab</b> and click <b>Mhelp</b>.</span><br><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">Speaking of staff, as a newly-minted server rising from the ashes of <b>Yogstation 13</b>, we are in need of <span style="font-weight: bold; color: #dd4400;">admins</span>, <span style="font-weight: bold; color: #dd4400;">coders</span>, <span style="font-weight: bold; color: #dd4400;">spriters</span>, and <span style="font-weight: bold; color: #dd4400;">mentors</span> to build our server. Preference will be given first to former Yogstation staff and then to their players, but all are welcome to apply. If you'd like to help out or simply hang out, please see the links listed below:</span><br><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">We host on a non-24/7 basis, so please join the Discord to know on what days and times that we're open.</span><br><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">
¤ <a href="https://forums.yogstation.net/form/18/select">Admin Application</a>
¤ <a href="https://forums.yogstation.net/form/8/select">Mentor Application</a>
¤ <a href="https://github.com/yogstation13/Yogstation">GitHub Repo</a>
¤ <a href="https://wiki.yogstation.net/wiki/Guide_to_contributing_to_the_wiki">Yogstation Wiki contribution guide</a>.
</span><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">We are running a high power server and we need <a href="http://www.yogstation.net/donate">donations to keep the server running</a>. <b>Donators</b> get <i>multiple benefits</i> such as <b>fun hats</b>, <b>custom cyborg skins</b> and <b>Quiet Mode</b>!<br><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">Discord: <a href="https://discord.gg/0keg6hQH05Ha8OfO">https://discord.gg/0keg6hQH05Ha8OfO</a></span><br>
<span style="font-family: Verdana; margin: 0px; padding: 0px;">If you need to create an account on the forums please use this keyword to register: <b>assistantgreytide</b></a></span><br>


¤ <a href="https://github.com/hogstation/Hogstation">GitHub Repo</a><br>
¤ <a href="https://discord.gg/sJqDueFMm8">Discord</a>
</span><br><br>
<hr>
<h2 style="font-family: Cursive; margin: 0px; padding: 0px; text-align: center;">"The yogging is done; let the hogging begin."</h2>
<hr><br>
15 changes: 3 additions & 12 deletions html/templates/header.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Yogstation Changelog</title>
<title>HogStation Changelog</title>
<link rel="stylesheet" type="text/css" href="changelog.css">
<base target="_blank" />
<script type='text/javascript'>
Expand All @@ -23,24 +23,15 @@
<table align='center' class="top">
<tr>
<td valign='top'>
<div align='center'><font size='3'><b>Yogstation 13</b></font></div>

<p><div align='center'><font size='3'><a href="https://forums.yogstation.net">Forum</a> | <a href="https://wiki.yogstation.net/wiki/Main_Page">Wiki</a> | <a href="https://github.com/yogstation13/Yogstation">Source</a></font></div></p>
<font size='2'><b>Visit #development-public on our Discord:</b> <a href="https://discord.gg/MHkabek">https://discord.gg/MHkabek</a></font><br>
<font size='2'><b>Suggest features on our forum:</b> <a href="https://forums.yogstation.net/forums/feature-requests.221/">-- Here --</a></font>
<div align='center'><font size='3'><b>HogStation</b></font></div>
</td>
</tr>
</table>

<table align='center' class="top">
<tr>
<td valign='top'>
<font size='2'><b>Current Head Developers:</b> JamieD12, baiomu <br></font>
<font size='2'><b>Currently Active GitHub contributor list:</b> <a href='https://github.com/yogstation13/Yogstation/graphs/contributors'>-Click Here-</a><br></font>
<font size='2'><b>Code Maintainers:</b> adamsogm, AshCorr, Bibby, Chubbygummibear, Djiq, John Willard, Manatee, Molti, monster860, SapphicOverload, ynot01<br></font>
<font size='2'><b>Sprite Maintainers:</b> Anerisa, BlueishTsunami, Cuackles, Halcyon<br></font>
<font size='2'><b>Map Maintainers:</b> Aquizit, Cark, Ezhan, Wejengin2<br></font>
<font size='2'><b>Thanks to:</b> /tg/station, FTL13 devs, Baystation 12, /vg/station, NTstation, CDK Station devs, FacepunchStation, GoonStation devs, BeeStation, Shiptest, the original SpaceStation developers, Invisty for the title image and Hippiestation for dissapointed.ogg and other assets.<br> Also a thanks to anybody who has contributed who is not listed here :( Ask to be added here on our discord.</font>
<font size='2'><b>Thanks to:</b> Yogstation13, /tg/station, FTL13 devs, Baystation 12, /vg/station, NTstation, CDK Station devs, FacepunchStation, GoonStation devs, BeeStation, Shiptest, the original SpaceStation developers, Invisty for the title image and Hippiestation for dissapointed.ogg and other assets.<br> Also a thanks to anybody who has contributed who is not listed here :( Ask to be added here on our discord.</font>
<font size='2' color='red'><b><br>Have a bug to report?</b> Visit our <a href="https://github.com/yogstation13/Yogstation/issues/new?template=bug_report.md">Issue Tracker</a>.<br></font>
<font size='2'>Please ensure that the bug has not already been reported and <u><a href="https://github.com/yogstation13/Yogstation/issues"><b>use the template provided here</b></a></u>.<br></font>
<font size='2'>Want something minor added? Check out this <a href="https://forums.yogstation.net/index.php?forums/feature-requests.221/">topic</a>!</font>
Expand Down
5 changes: 2 additions & 3 deletions yogstation/code/game/world.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,9 @@ GLOBAL_LIST_EMPTY(donators)
var/s = ""
var/server_name = CONFIG_GET(string/servername)
if (server_name)
s += "<b>[server_name]</b>\] &#8212; Dive in Now: Perfect for Beginners!"
s += "<br>99% Lag-Free | New Player Friendly | Active Community"
s += "<b>[server_name]</b>\]"
s += "<br>By and for former community members of Yogstation (Note: Different staff and management)"
s += "<br>Time: <b>[gameTimestamp("hh:mm")]</b> | Map: <b>[SSmapping?.config?.map_name || "Unknown"]</b> | Alert: <b>[capitalize(SSsecurity_level.get_current_level_as_text())]</b>"
s += "<br>\[<a href=\"https://yogstation.net/\">Website</a>" // link to our website so they can join forums + discord from here

//As of October 27th, 2023 taglines.txt is no longer used in the status because we never had the characters to spare it, so it would put 2-3 random characters at the end and look bad.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,10 @@
while(length(weighted_candidates) && length(candidates) < antag_count) //we pick_n_take from weighted_candidates so this should be fine
var/client/picked_client = pick_n_take_weighted(weighted_candidates)

if(!picked_client)
picked_client = pick(cliented_list)
weighted_candidates -= weighted_candidates[picked_client]

if(!picked_client || QDELETED(picked_client) || !istype(picked_client)) //sanity check
continue

Expand All @@ -276,6 +280,8 @@
poll_time = 20 SECONDS,
group = list(picked_mob)
)
if(!length(candidates)) // No candidates, don't prompt anymore
break
else
candidates |= picked_mob

Expand Down
Loading