January 11, 2026

WinterPhoenix

Founder / Lead Developer
Staff member
Founder/Lead Developer
This list contains changes made to Yuki since December 31, 2024.

YukiTheater
  • Update Map to v3 Beta7
    • We FINALLY have another map update for you, and with it, the holidays have finally ended!
    • Updates the look of the street with new textures and a new look!
    • Adds the new Plaza area to the street
    • Adds the WIP Bowling Alley / Arcade
    • Adds the WIP Train Station
  • Add Discord Global Chat Bridge
    • Bridges in-game global chat with the #global-chat channel in Discord!
    • Can be turned off in Scoreboard Settings (if you don't want to send messages to, or receive messages from, Discord)
  • Add HUD Hints
    • Ever forget what key does what? Just look in the bottom left of your HUD!
    • Can be turned off in Scoreboard Settings
  • Add 5 New Achievements
    • I've got a song that nobody knows: 240 Credits | Watch "iPod Touch (Official Video)" by Ninajirachi
    • It's a Yuki Wonderland (2025): 2,700 Credits | Visit YukiTheater on December 25, 2025
    • A Special Gift (2025): 3,600 Credits | Open a Present during Holiday 2025
    • I Was There When 2026 Started: 20,000 Credits | Be here when the ball drops for 2026
    • Thirteen Year Anniversary: 2,700 Credits | Visit YukiTheater on January 6, 2026
  • Locations: Reduce Rentable location cost to 1/4 Currency/second (down from 1)
  • Map Config: Add lobby1-4.mp3 ambience for non-holiday Lobby ambience
  • Map Config: Increase volume of Manga Shop: 1st Floor ambience a bit
  • GUI: Leave 64 pixels around the MOTD instead of taking up the *entire* screen on low resolutions
  • GUI (Scoreboard): Make paused media flash duration like elsewhere
  • Slot Machine: Use OPAQUE rendergroup, Don't render if >1536 units away from player
  • Apartments: Support changing Item Angles via the Item Settings menu
  • Apartments: Normalize new item angles so they don't get saved wonky and cause more floating point error
  • Apartments: Support PlayerShouldTakeDamage saving/restoring
  • Chat (YukiBot): "Spacebar" -> "SPACE"
  • Chat (YukiBot): Add "how change model" response alias for /skin
  • Chat (YukiBot): Add "how report bug" prompt
  • Chat (YukiBot): Add "where are you"/"where is every" responses
  • Chat (Yukibot): Add /wardrobe response
  • Chat (YukiBot): Rename "how report" to "how report player"
  • Chess: FINALLY fix the weird physics issues with the board (by not using its physics and just relying on the table instead)
  • Chess: Remove unused locations
  • Chess: Replace clientside RenderMultiply with serverside SetModelScale for board/pieces
  • Chess: Replace default Arial fonts with Personified UX
  • Chess: Replace velocity ejection/prop deletion with Eject Trigger
  • Discord (Global Chat): Notify on auto-restart enable/disable- Discord (Global Chat): Notify on forced hostname change
  • Easter Egg Hunt: Don't spawn eggs in b e a n or Dark Room
  • Easter Egg Hunt: Don't spawn eggs inside of solidity either (should be fine since we ignore world)
  • Easter Egg Hunt: Fix state changes
  • Experiments: Add Chromatic Aberration experiment (might be used with the Nightclub once we have it)
  • Experiments: Fix Anaglyph 3D not drawing HUD or monitors
  • Experiments: Get Anaglyph 3D actually working (supposedly! I need glasses to test it)
  • Fix Pet Shop and Toy Shop shopkeeper positions
  • Fix Shop Detail not just using the shop center position for spawning Auto-Mode Pets
  • GUI: Sort locations by player count and also show it if there are any
  • GUI: Use UnclampedRealFrameTime for HUD FPS
  • Halloween: Fix blood red skybox hack
  • Halloween: Make spooky sounds happen more often if a Halloween event is running
  • Halloween: Make spooky sounds obey Mute Sound Effects While Media Playing except on Oct 31/Nov 1
  • Leaderboards: Move Time and Casino Leaderboards to Lobby
  • Leaderboards: Shrink font a bit to fit the new locations better
  • Lights Out (Flashlight): Take pity on players that don't have any battery for 45 seconds and give them a little bit
  • Lights Out (Fuse): Fix rendering and revert no-battery glow distance change
  • Lights Out: Add CrashTracker for material updates
  • Lights Out: Check if we're trying to spawn inside of an entity/inside solidity before spawning pickups
  • Lights Out: Clear player teams for ALL players on game end, not just those currently still playing
  • Lights Out: Don't include *any* rooftop as part of the game area
  • Lights Out: Exclude Dark Room from playable area, Fix trying to blacklist Backroom and Huh, which don't exist anymore
  • Lights Out: Fix breaker locations for Map v3 Beta6
  • Lights Out: Fix breaker positions that are partially in the wall and therefore didn't play sound effects
  • Lights Out: Fix flashlight sometimes not gaining pity battery
  • Lights Out: Fix Manga Shop: Backroom breaker not playing sound effects
  • Lights Out: Flash flashlight battery segment at 10% instead of 5%
  • Lights Out: Give Ghoul 1/2 battery for killing a Technician
  • Lights Out: Make fuses a little more visible for players that have no flashlight battery
  • Lights Out: Make power down/restore sounds obey Mute Sound Effects While Media Playing except on Oct 31/Nov 1
  • Lights Out: Notify EVERYONE when the game starts instead of only players within the play area
  • Lights Out: Only do full lighting updates if the player is actually in the game; do quick brush updates otherwise
  • Lights Out: Only play ALL sound effects if Mute Sound Effects While Media Playing is turned off
  • Lights Out: Only play power switch flip sound instead of the full power failure sound for players that have muted sound effects while media playing
  • Lights Out: Say which team won explicitly, then list the top contributors
  • Lottery: Put wins in Discord Global Chat too
  • Map Config: Add Lobby: Roof GroupID so local chat is with Inside
  • New Year's Event: Fix end message not being displayed
  • Yuki Present: Tell the player what year they've opened this present for
  • Achievements: "You're not supposed to be here" and "Power Through Violence" are now Expired


SGS Social
  • Media: Add Internet Archive service
  • Media: Add P-Stream service
  • Media: Add Media Preferred Audio Lang, Media Preferred Subtitle Lang, and Media Subtitle Mode (replacing Closed Captions setting)
  • QLocOwnerMenu: Add Location Damage setting
  • QLocOwnerMenu: Add Color Change Menu for Yuki's Private Theaters
  • QLocOwnerMenu: Migrate from Turn On/Off Lights to Lights Brightness
  • ACTUALLY prevent duplicate ALL duplicate footstep sounds by leveraging the PlayerFootstep hook to tell us which sounds /are/ footsteps (not everything has footstep or _step in the file name)
  • Halve the volume of Glass footstep sounds
  • Media Sign In: Update to use it for CAPTCHAs too
  • Media Thumbnail: Fix thumbnails not loading on join
  • Media Thumbnail: Add indicator for when the media is paused
  • Eight Ball: Add Eject Trigger
  • Death Notice: Fix player colors, Use Roboto Bold font instead
  • Ambience Radio: Finish artist/title drawing, Add visualizer, Add time indicator
  • Ambience Radio: Fix showing incorrect title as last location's ambience is fading out
  • GUI: Leave 64 pixels around the Media Web Browser instead of taking up the *entire* screen
  • Ambience: Add hack to alias lobby1.mp3 to cinema.mp3
  • Clamp r_decals and mp_decals to max 1024 (hopefully solve some crashes)
  • Confetti Shooter / Popcorn Bucket: Print when we couldn't create all of the requested particles
  • Discord (Global Chat): Notify on Media Titles in Hostname setting change
  • Eject Trigger: Don't rip children away from their parent (if they have one)
  • Eject Trigger: Finish implementing and make it actually work
  • Eject Trigger: Never eject prop_vehicle_prisoner_pod
  • EntityEmitSound: Fix duplicate Glass (and some other) footstep sounds
  • Extensions (IGModAudioChannel): Add BasicFFTBars / GetFFTFrequency reusable functions
  • Extensions (IGModAudioChannel): Add parsing for Shoutcast metadata to GetArtistAndTitle
  • Game Ents / Pets: Replace sgs_draw_screenspace with sgs_draw_equipment_dist (notably more efficient and less buggy)
  • GUI (HUD): Use `use` binding for Use Interact Prompt
  • GUI (Item Settings): Support changing angle for Apartment Items via the Item Settings menu (doesn't work outside of Apartments yet)
  • GUI (Media Seek): Fix all-caps title in Yuki
  • GUI (QInvMenu): Fix auto-expire not working if menu is bound to any key other than Q
  • GUI (QInvMenu): Give a hint if you click on an Apartment Spawnable when it's not able to be spawned
  • GUI: Fallback to Q if `menu` is unbound (Thanks @narshalbarsh on Discord!)
  • GUI: Fix Media Browser URL updating
  • Inventory: Try and fix "unconnected's Pet" / using old usernames on name change (YukiIssues#3)
  • Media (AnimePahe): Fix resolution sorting (should now correctly default to the highest resolution available)
  • Media (Audio): Don't empty FFT tables that don't need to be emptied (+performance)
  • Media (HiAnime): Fix buffering issues caused by the service trying to auto-skip intros
  • Media (HiAnime): Fix potentially not including sub-service entries that are currently selected
  • Media (HiAnime): Fix sometimes passing through an empty list of sub-services as valid
  • Media (Internet Archive): Fix playlist parsing
  • Media (Internet Archive): Fix service not working with any video file other than the first in an identifier (and improve titles/thumbnails!)
  • Media (Internet Archive): Improve error handling
  • Media (P-Stream): Fix match errors when trying to request Solstream
  • Media (P-Stream): Reduce poster thumbnail size to fit in VTF API limits
  • Media (P-Stream): Request user interaction for Cloudflare CAPTCHAs
  • Media (P-Stream): Skip onboarding in the Web Browser as well
  • Media (Solstream): Update for v2 service (MediaMTX + FrankenPHP)
  • Media (TikTok, Twitch, YouTube): Improve error handling
  • Media (TikTok): Add Internal Resolution and Preferred Language support
  • Media (Twitch): Fix Clips
  • Media (Twitch): Fix play button being stuck on screen sometimes
  • Media (Twitch): Fix quality selection
  • Media (YouTube): Always use YouTube Referer (embeds are being locked down, making them say "Video unavailable" when it actually is)
  • Media (YouTube): Fix "day" parsing for video duration (>24H was being ignored)
  • Media (YouTube): Fix counting redirects more often than actually happens
  • Media (YouTube): Handle player errors better and don't spam onFailure (should fix LOTS of playback issues)
  • Media (YouTube): Implement Preferred Language support
  • Media (YouTube): Prevent redirecting infinitely if the video just isn't loading (hopefully help it from thinking clients are bots)
  • Media (YouTube): Redirect/retry quicker if the player says the video isn't playable in the current context
  • Media (YouTube): Remove dead age-restriction bypass script
  • Media (YouTube): Try another approach for skipping ads
  • Media Controller: Add PrivateTheaterNum so we can hook it up to the Location Colors system
  • Media Controller: Fix LightEnts for Private Theaters after Map v3 Beta6c
  • Media Screen: Add support for showing Media Error on all screens
  • Media Screen: Fix media title position not being scaled with Yuki screen
  • Media Screen: Fix misstyled pause screens
  • Media Screen: Fix overlays on Old Monitor
  • Media Screen: Hopefully fix material reload for Yuki theater screen background
  • Media Screen: Max font height is 255
  • Media Screen: Move theater screen background position for Yuki Map v3 Beta7
  • Media Screen: Replace old CurrentShortTraceEntity with GetUseEntity (fixes Interact Prompt not appearing on screen if HUD Interaction Prompts are disabled)
  • Media Screen: Show Paused instead of Loading if there's no HTML Material (probably just walked into the theater)
  • Media: Add "Doesn't work without x86-64 Chromium" errors for most services when using Awesomium
  • Media: Add broken StreamingNow sub-service
  • Media: Add error that prevents loading services that use disable-devtool without CEFCodecFix to prevent crashing GMod
  • Media: Add payout time-travel debugging (???)
  • Media: Add Preferred Language support to AnimeFLV (partial), AnimePahe, Catflix, and HiAnime services
  • Media: Add Preferred Language support to JWPlayer and Turbovid sub-services
  • Media: Add s3embtaku.com sub-service
  • Media: Add support for "Media Volume Normalization" setting, which is used for YouTube's "Stable Volume" aka Dynamic Range Compression (DRC)
  • Media: Add swiftplayers.com sub-service
  • Media: Add vidlink.pro sub-service and HTML_IFrame handler
  • Media: Add warning for when sgs_media_controls is turned on asking the player to report whatever bug they're running into
  • Media: Allow any TLD for megacloud.* sub-service
  • Media: Allow developers to bump media to the top of the Queue even if they don't own the location
  • Media: Better tips for errors depending on client support situation
  • Media: Call readyState > 0 good enough instead of readyState > 1 for HTML5 video
  • Media: Detect and fix JWPlayer videos for Direct Video
  • Media: Disable my.mail.ru sub-service for now (russian audio playing in background in some scenarios)
  • Media: Don't save controls convar, and reset on client shutdown
  • Media: Error more cleanly if SERVICE.Match is missing for some reason
  • Media: Even better error detection/quicker redirects for YouTube
  • Media: Finally fix pause state not being networked on join
  • Media: Fix AnimePahe
  • Media: Fix duration sort for video elements across various services
  • Media: Fix media not drawing while in Fullscreen with the Main Menu open
  • Media: Fix service errors not disappearing on the screen if the internal player readies up
  • Media: Fix sub-services matching with hosts that only end in the domain
  • Media: Fix Turbovid sub-service (no longer uses VideoJS, and is instead just HTML5)
  • Media: Fix yourupload.com sub-service
  • Media: GModCEFCodecFix -> GModPatchTool
  • Media: Improve thumbnail url path string replacement
  • Media: Log to console when the internal player resolution ACTUALLY switches for Solstream
  • Media: Move HTMLTextureThink from CONTROLLER.PreRender back to CONTROLLER.Think (doesn't provide any noticeable performance benefit; might actually hurt)
  • Media: Officially retire 9Anime, Yugen, and GoGoAnime services
  • Media: Retire Catflix since it's dead :(
  • Media: Save Media Errors so we can show them on screens
  • Media: Try redirecting to largest iframe if video player times out on Direct Video
  • Media: Update streamwish.to sub-service to hlsflast.com
  • Media: Use Plyr sub-service for kwik
  • Minigames: Make spooky noises happen more often if a Halloween event is running
  • Minigames: Trigger spooky sound frequency change on RUNNING instead of STARTING
  • Player Class: Add jump boost for bunny hopping
  • Popcorn Bucket: Add Mod-only secondary fire / Add sgs_firepopcorn for spamming kernels
  • Popcorn Bucket: Fix number of particles being limited to 1023
  • Popcorn Bucket: Reduce die time for particles from 20-30 to 15-20
  • Push Trigger -> Eject Trigger
  • QInvMenu: Disable item hovering while in Media Fullscreen
  • QLocOwnerMenu: Fix appearing in locations where it doesn't apply
  • QLocOwnerMenu: Move Lights Brightness below Player Filter
  • Rocket Firework: Don't pushback players who are in a Minigame or bound to a GameEnt
  • Seats: Fix seat force-exit sometimes preventing seat cleanup (not sittable until player disconnect)
  • Set GM.ActiveGamemode BEFORE running sh_loadorder.lua
  • Taunts: Make pressing `use` also exit sequence taunts
  • Use UnclampedRealFrameTime for initial Player Glow FPS analysis
  • WIP SGS Piano


Yuki Base
  • Chat: Add /reportbug
  • Inventory: Add proper credit to GFireworks2 for the Fountain and Rocket Fireworks' particles
  • Items: Remove Witch Hat with Skull Band (replacing with Witch Hat with bodygroup)
  • Inventory: Add RegenCorruptSpawnIcons based on date
  • Items: Update paintable model/material paths for migration project
  • Items: Update Pokemon Trainer Hat and Cubone Head cosmetic paths for migration project


SGS Base
  • Admin: Update Moderator/Senior Moderator colors to more clearly separate them
  • Inventory: Replace "Initialize" time with Join time (a more useful metric)
  • Chat: Replace built-in chat message system with our own (and increase max length from 126 characters to 180)
  • Chat: Fix player chat messages coming up as "CONSOLE" and missing info if the client hasn't finished loading other player entities (or they're lagging bad)
  • Chat: Make leave messages only say the gamemode ShortName
  • Chat: Let the player know on join that Global Chat is synced with Discord (when they have the setting turned on)
  • Inventory: Disable model precaching for items, since we have so much content that it can sometimes crash players with out-of-memory (can't wait to see how many bugs this causes!)
  • Renderables: Replace sgs_draw_screenspace with sgs_draw_equipment_dist (notably more efficient and less buggy)
  • Renderables: Take into account playermodel scale for equipment draw distance
  • Scoreboard: Fix counting an extra player on join/disconnect
  • Scoreboard: Add Bunny Hop setting
  • Scoreboard: Add Media Volume Normalization setting
  • Scoreboard (Achievements): Show Completed achievements in their full colors even if they're Expired
  • Scoreboard (Controls): Add missing Media Mute/Unmute hotkey
  • Scoreboard (Settings): Move HUD settings to a separate category
  • Admin: Support (and output) ties for Polls
  • CrashTracker: Initial commit
  • CrashTracker: Hook into render.RedownloadAllLightmaps and game.MountGMA
  • HUD: Add DXLevel warning
  • Extensions (DownloadedTex): Fail if we can't actually write the VTF file on client disk
  • Extensions (Time): Halloween now starts a week earlier (Sep 24th)
  • Extensions (Multicore): Disable r_threaded_particles for now (may be the cause of our recent crashes)
  • Extensions (Multicore): Fix not updating all other associated multicore convars when mat_queue_mode changes (and say in console when it changes)
  • Extensions (Multicore): Add r_occludermincount 2, r_fastzreject 1, r_hunkalloclightmaps 0, threadpool_affinity 0, r_norefresh 1, and mat_forcemanagedtextureintohardware 0 suggestions from Mastercomfig
  • Extensions (Multicore): Remove r_threaded_client_shadow_manager and r_threaded_renderables since they were removed from GMod
  • Move YUKI FastDLPath to http://fastdl.yukitheater.org (HTTP, not HTTPS, to be compatible with macOS clients)
  • Randomly choose between US and Canada for sv_location
  • Remove sgs_draw_nofocus_sleep / engine_no_focus_sleep setting (Facepunch blocked it)
  • HTML: Add support for setting FPS for UpdateHTMLTexture (engine does 60, but default is now 30 to recover some performance for non-critical HTML panels)
  • Admin: Add sgs_admin_global_mute and /globalmute to mute players from JUST global chat
  • Admin: Don't cache username if it's the same tick as the name change
  • Admin: Fix Player Nick potentially not always having bad characters replaced
  • Admin: Increase runlua rank to founder for now
  • Changelevel: Tell players if CloseServer failed during Crash Mode
  • Chat: Notify when usernames change, and send that message to #global-chat
  • Chat: Play Highlight sounds even if Mute Sound Effects While Media Playing is turned on
  • Chat: Make casing not matter for chat commands
  • Chat: Rename /report to /reportplayer
  • Chatbox: Always use GLOBAL or LOCAL; "SAY" doesn't mean anything anymore
  • Chatbox: Make it more obvious when you're typing in Global
  • DHTML: Make OnURLChanged the de-jure way of getting URL changes instead of hacking OnBegin/OnFinishLoadingDocument
  • DHTML: CEF is now available on all branches on Windows
  • ErrorLog: Add gamemode argument for cross-server crash logs
  • ErrorLog: Flush on changelevel too
  • ErrorLog: Update/Log the time each error happened
  • Extensions (Debug): Add sgs_debug_trace
  • Extensions (Render): Add increased depth hack for _rt_resolvedfullframedepth (Thanks @akabenko on Discord!)
  • Extensions (Render): Fixup D3DEX check
  • Extensions (Time): Update Black Friday Weekend dates
  • Extensions: Don't call ENT: Draw from ENT: DrawTranslucent (stricter to help us pay attention to what rendergroups we're using)
  • Extensions: Fix base_anim DrawTranslucent override
  • Extensions: Remove HSVToColor color metatable and COLOR.ToVector polyfills
  • FastDL Addons: Fix "invalid write size 0" preventing clients from downloading the addons
  • GUI: Add DHTMLControls override to fix OnURLChanged for the Address Bar and URL History
  • GUI: Make Theme.COLOR_BLURPLE available to everything
  • HUD: Move DEV marker from YukiTheater to SGS Base
  • Inventory: Enable passing through settings from Apartments if pos/ang is being updated through the Item Settings menu
  • Inventory: Enable updating only pos or only ang on ChangeItemSpawnStatus
  • Inventory: Fix spawnicon regeneration not removing some panels at the end
  • Inventory: Properly handle removed items
  • Inventory: Strictly enforce trying to give/take negative currency via error
  • Locations: Add PlayerShouldTakeDamage toggling
  • Locations: Add PrimaryColor and SecondaryColor setting support (uses SGSLocationColorPrimary and SGSLocationColorSecondary matproxies)
  • Locations: LightsState is now LightsBrightness, a number from 0 to 200%
  • Locations: LightsState is now networked to everyone (to enable consistent state from staff changes)
  • Locations: Note if a location doesn't exist in the config during creation
  • Locations: Re-set location colors when the localplayer walks into a location (fixes shared materials not updating color)
  • Locations: Use the owner's new name on name change, not the old one
  • Migrate everything that was using the x86-64 branch check to determine CEF availability to CEFAvailable global var
  • Move CEF/CEFCodecFix detection from SGS Social Media System to early-load extension in Base
  • MySQL: Add notes for getting SSL to work
  • Net: Add warning to WriteUInt/ReadUInt when using ChunkedData
  • Net: Remove MAX_EDICT_BITS (included with game)
  • Optimize player.GetBy*
  • OSP: Initial commit (allows OSP Developers to modify and test clientside code via yuki-osp addon in their local install)
  • SGS Projected Texture: Migrate to NWAccessors
  • Renderables: Fix IsPlayingTaunt for NPCs
  • Renderables: Fix regular taunts causing cosmetic/accessory detaching too
  • Replace old dev server detection methods (GAMEMODE.DevelopmentMode / sv_lan / game.GetIPAddress) with sgs_server_devmode
  • SGS Projected Texture: Initial commit of our variant of env_projectedtexture, which obeys PVS
  • Statistics: Use new 40 hour target for Monthly Moderator Activity calculation
  • Turn off JIT for x86-64 (garrysmod-issues#4100)
  • Update references to "Press KEY" or "Hold KEY" to use relevant bindings whenever possible
  • Use ents.GetEdictCount instead of ents.GetCount when checking against ENT_LIMIT
  • Don't ship unused GMCL versions of cosmetics


Yuki Website
  • www.yukitheater.org -> yukitheater.org
  • Update cover image for Map v3 Beta7
  • Global: Add Steam/Yuki Account Sign In support
  • Global: Add support for Early Hints (FrankenPHP)
  • Global: Remove X (formerly Twitter) from the Navbar
  • Global: Use Roboto as the default font-sans-serif (system-ui missing on Proton makes everything look wonky)
  • Loading: Add a few more backgrounds
  • Media Logs / Status: Hide Media info behind Sign In unless it's Now Playing, in which case we just don't embed/link it
  • Body Top: Clicking your avatar/name in the header now takes you to your Player Card
  • Connect: Clarify how to open GMod Developer Console
  • Cover Image: Apparently GIMP changed how Effects are applied to Layers
  • Early Hints: Actually preload the gmodhealth logo
  • Early Hints: Add images and FontAwesome fonts that are used everywhere
  • Early Hints: Add media_static.webp to various media pages
  • Early Hints: Add THE REST of the global images
  • Early Hints: Add vcr-osd-mono.woff2 to various media pages
  • Early Hints: Don't include a bunch of unused stuff on Loading Screen, MOTD, and Changelog
  • Early Hints: Preload footer_background.jpg at low priority
  • Early Hints: Preload the big logos on the homepage
  • Early Hints: Preload the YukiTheater no-tag logo on all pages
  • Early Hints: Provide type and crossorigin for fonts (maybe this'll fix preloading not working?)
  • Editor Config: Don't trim trailing whitespace in global.js
  • Error: Don't hardcode status messages now that Caddy can just tell us
  • FastDL: Add Map v3 Beta6c NAV
  • FastDL: Add Map v3 Beta7
  • Fix header-profile-button css
  • Fonts: Include ALL glyphs in the Roboto WOFF2
  • Fonts: Remove old WOFF fonts
  • Fonts: Update Roboto Regular to v3.009
  • Global CSS: Fix footer image position (apparently different than all of the other sites?)
  • Global JS: time-relative now tells you if your computer time is out of sync, and says "just now" instead of "ago" for 0 seconds
  • Loading: Fix trying to load directories as images in some scenarios
  • Media: Fix media embed text not breaking on word
  • MOTD: Capitalize A in Anime
  • MOTD: Replace "Crunchyroll" with "multiple Anime services"
  • MOTD: Update "short rules" to be in line with recent rule adjustments
  • Page Body Bottom: Add donate advert
  • Page Body Bottom: Replace GMCL with GModPatchTool and GModHealth (RIP)
  • Page Body Bottom: Replace GModPatchTool PNG logo with SVG version
  • Page Head: Stop Safari trying to link phone numbers out of random numbers
  • Proxy API: Fix scenarios where the web server incorrectly returns charset alongside image MIME in Content-Type
  • robots.txt: Add another example of Perplexity being losers
  • robots.txt: Add Content-Signal directive
  • robots.txt: Add SGS ASCII Art
  • robots.txt: Tell Perplexity to go fuck themselves
  • Status: Improve Player Count History mouseover
  • Status: Sort by player count in Now Playing first and foremost
  • SteamAuth: Use the production domain name
  • Time / Global JS: Halloween now starts a week earlier (Sep 24th)
  • Vendor: Add SteamOpenID dependency for SteamAuth
  • Vendor: Update Bootstrap
  • Vendor: Update Chart.js
  • Vendor: Update FontAwesome
  • Vendor: Update LaLit
  • VTF API: Bump max VTF size to 17MiB to accomodate VTF header/metadata just above 16MiB
  • VTF API: Cache big VTFs, but don't serve them
  • VTF API: Change URL parameter into a header (query encoding keeps FUCKING UP URLs)
  • VTF API: Enforce 16MiB limit for output VTF files
  • VTF API: Fix MiB calculation for "too big" VTFs (apparently ^ is xor and ** is exponentiation in PHP)
  • VTF API: Fix returning HTTP 300 instead of 400 if Imagemagick reports the image as invalid
  • VTF API: Fix scenarios where the web server incorrectly returns charset alongside image MIME in Content-Type
  • VTF API: Max should be <= 16 MiB not < 16 MiB
  • VTF API: Migrate from vtex2 to MareTF (it can do GIFs!)
  • VTF API: Only use RGBA if the image both has an alpha channel and that alpha channel is actually used
  • VTF API: Output how big the "too big" VTF was
  • VTF API: Properly return HTTP 413 when the VTF size is too big
  • Update copyright year


SGS Website
  • www.solsticegamestudios.com -> solsticegamestudios.com
  • About: Add Yamir
  • About: Add Zia
  • About: Add pronouns to most profiles
  • About: Update some profiles and add emojis
  • About: Move Danno and MrMuffinz to Inactive
  • About: Tweak description of SGS, add GModHealth to "creators of" list
  • PGP Keys / About: Add PGP Key for [email protected]
  • Contact: Add PGP Keys for security@ and privacy@ email addresses
  • Contact: Add Bluesky
  • Contact / Navbar: Remove Facebook and X (formerly Twitter)
  • Migrate everything from GModCEFCodecFix to GModPatchTool
  • Global: Add support for Early Hints (FrankenPHP)
  • About: Use bg-black with bg-gradient for profile cards (looks a little better)
  • About/Contact/Projects: Format/text tweaks
  • Composer: Update mailgun-php and update dependencies
  • Donate Global: Supporters should always get the Donator role as well in XenForo
  • Donate: Fine it's just "coming soon"
  • Fix Media (ChromeOS): Add warning about Steam for Chromebooks Beta retirement
  • Fix Media (FAQ): Add chmod +x gmod workaround for macOS
  • Fix Media (FAQ): Add ChromiumCache no main menu cause
  • Fix Media (FAQ): Add note about exFAT/NTFS on Linux
  • Fix Media (FAQ): Add note about fullscreen on macOS
  • Fix Media (FAQ): Add Table of Contents
  • Fix Media (FAQ): Increase minimum system requirements for Linux
  • Fix Media (FAQ): Recommend Mullvad as another VPN option
  • FIx Media (FAQ): Update for GModPatchTool
  • Fix Media: Add "Read the FAQ" to every page
  • Fix Media: Finish updating for GModPatchTool, add new screenshots
  • Fix Media: Fix auto-launch-gmod advanced instructions for macOS
  • Fix Media: Fix various non-color emojis
  • Fix Media: Tweak CSS
  • Global CSS: Add .player-color-rank-2 for donate advert
  • Global CSS: Update Moderator/Senior Moderator colors to more clearly separate them
  • Global JS: Remove unused time/dropdown handler stuff
  • Home: Add "Videos" to things players can watch on Yuki
  • Home: Fix eclipse background position
  • Home: Fix not using color emoji for carousel buttons
  • Home: Say which time zone for announcement dates
  • Page Body Bottom: Add donate advert
  • Page Body Bottom: Replace GMCL with GModPatchTool and GModHealth (RIP)
  • Page Body Bottom: Tweak donate advert to mention that we don't show ads
  • Page Head: Stop Safari trying to link phone numbers out of random numbers
  • Player: Use updated GetPlayerSummaries v2 endpoint name
  • Privacy Policy: Update and refine, Add Termly logo (as required using them for free)
  • Projects: Add GModHealth to Projects page
  • Replace GModPatchTool logo PNG usage with the SVG version
  • Replace LightOpenID dependency with xPaw's SteamOpenID script
  • robots.txt: Add another example of Perplexity being losers
  • robots.txt: Add Content-Signal directive
  • robots.txt: Add SGS ASCII Art
  • robots.txt: Tell Perplexity to go fuck themselves
  • SteamAuth: Correctly handle exceptions, say "Please try again"
  • Stripe Webhook: Fix not providing customer ID to customer updates (apparently it doesn't get it for you even if it's a fully retrieved object)
  • Stripe Webhook: Update to support Latest Stripe API
  • Update SteamAuth to use SteamOpenID
  • Update XenForo
  • Vendor: Add firebase/php-jwt for forthcoming Commits webpage
  • Vendor: Update Bootstrap
  • Vendor: Update composer dependencies
  • Vendor: Update FontAwesome
  • Vendor: Update Stripe-PHP
  • Webhooks: A little lighter black for GitHub destination (apparently straight #000000 is treated as not being a color on some Discord platforms)
  • Webhooks: Add GitHub webhook handler for automatic GModPatchTool file updates and Cloudflare cache purge
  • Webhooks: Add GitHub webhook source
  • Webhooks: Add GModPatchTool Discord channel destination
  • Webhooks: Add project-commits destination, replacing gmodhealth destination
  • Webhooks: Add timestamp to Bitbucket commits (why didn't we have this before???)
  • Webhooks: Auto-Publish (crosspost) messages posted to project-commits
  • Webhooks: Better retry logic for HTTP 429 (may need to reflect off of SolsticeWeb, since this is a recurring issue for Cloudflare Workers)
  • Webhooks: Just output one message for force-push from GitHub source
  • Webhooks: Remove image from Bitbucket commits
  • Webhooks: Standardize "New Commit" titles
  • Webhooks: Update to latest version of Cloudflare Workers environment stuff
  • Update copyright year

PHEW! That was a lot! Our apologies for not getting out a changelog for so long after the previous one, but these are essentially just "round-ups" of all the work we do, so we kept putting it off.

To that end, if you haven't heard, we have a #project-commits channel on the Discord now where you can see us make changes as soon as we push them! We're also planning on making a public webpage on the SGS Website soon™ where you'll be able to see all of the same information.

So, there may not be a need for these "traditional changelogs" for much longer. The idea is also to replace the old unmaintained Trello boards with these for "Live Updates," and then do proper Announcements for big ticket items that we think is worth highlighting.

All of that said! We hope you enjoy/have been enjoying all of the changes we've made over the last year. I know I've had a blast working on the map refresh personally, so we're eager to hear the feedback on that and keep building.

Enjoy, and Love You All! ❤️

cover_noblur.jpg
 
Last edited:
Back
Top