Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0f0a41f
Re-advertise if the IP or game version changes
akirilov Oct 31, 2025
9ee02f6
Add a debug message for the re-advertising change
akirilov Oct 31, 2025
c3c442d
Fix backup manager nested loops slowing down games with large numbers…
akirilov Nov 3, 2025
58842f7
Revert the restore functionality since we need to update timestamps t…
akirilov Nov 3, 2025
e9012ac
Restore index counting because we need to be able to display in rever…
akirilov Nov 3, 2025
247cbd8
Un-reverse the array and reverse it only when sending to the UI
akirilov Nov 3, 2025
6db2648
changed save file index type from uint to int for functional indexing…
JacksonTheMaster Nov 3, 2025
7eb1116
frontend adjustments for backup manager changes
JacksonTheMaster Nov 3, 2025
4612828
moved getBackupSaveFiles method into its own file for maintainability
JacksonTheMaster Nov 3, 2025
fd771ae
removed unreachable code from RestoreBackup
JacksonTheMaster Nov 3, 2025
8a47d0e
enforced new terrain system in backup manager; updated logging accord…
JacksonTheMaster Nov 3, 2025
a128557
added really annoying warning to config when using the old terrain sy…
JacksonTheMaster Nov 3, 2025
cae893e
update readme slightly
JacksonTheMaster Nov 3, 2025
0b21327
Merge pull request #138 from SteamServerUI/fix-backup-loops
JacksonTheMaster Nov 7, 2025
543f9b9
Added logging the gameserver output to file, added SSUIlogs and games…
JacksonTheMaster Nov 7, 2025
8664d2e
fix save CreateGameServerLogFile to config file
JacksonTheMaster Nov 7, 2025
420040e
Fix log dir not being created correctly
akirilov Nov 7, 2025
2feb0d1
Merge pull request #139 from SteamServerUI/feat-gameserver-logfiles
JacksonTheMaster Nov 7, 2025
9daea10
Fixed console scrolling for active console
akirilov Nov 8, 2025
511d474
Remove duplicate scroll
akirilov Nov 8, 2025
4dd10d4
Merge pull request #140 from SteamServerUI/fix-console-scroll
akirilov Nov 8, 2025
a40e4e3
fix double info text about old save support
JacksonTheMaster Dec 11, 2025
9f56bba
updated info note on dashboard reg BM update
JacksonTheMaster Dec 11, 2025
cab1fc3
Updated world configuration with community options and update World I…
JacksonTheMaster Dec 11, 2025
6c3decf
bump version for 5.9 release
JacksonTheMaster Dec 11, 2025
2787e30
moved more color definitions to variables.css for future theming
JacksonTheMaster Dec 13, 2025
4a8b6b2
further refactored CSS to enhance use of variables for improved themi…
JacksonTheMaster Dec 13, 2025
77933c0
added conditional xmas elements to UI from 1st of dec to 10th of jan
JacksonTheMaster Dec 14, 2025
9a2c606
added dynamic announcement section to UI with support for fetching an…
JacksonTheMaster Dec 14, 2025
4a7f47e
added credits page and credits button and bottom of main dashboard
JacksonTheMaster Dec 14, 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,4 @@ frontend/node_modules
frontend/dist
frontend/build
UIMod/onboard_bundled/v2
UIMod/logs/*
297 changes: 297 additions & 0 deletions UIMod/onboard_bundled/assets/credits.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,297 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>StationeersServerUI Credits</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
background: #0a0e27;
color: #fff;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
overflow: hidden;
position: relative;
}

.stars {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}

.star {
position: absolute;
background: white;
border-radius: 50%;
animation: twinkle 3s infinite;
}

@keyframes twinkle {
0%, 100% { opacity: 0.3; }
50% { opacity: 1; }
}

.credits-container {
position: fixed;
width: 100%;
height: 100vh;
overflow: hidden;
perspective: 400px;
}

.credits-scroll {
position: absolute;
width: 80%;
max-width: 900px;
left: 50%;
bottom: 0;
transform: translateX(-50%) translateY(100%);
animation: scroll-up 90s linear forwards;
text-align: center;
}

@keyframes scroll-up {
to {
transform: translateX(-50%) translateY(-100%);
}
}

.title {
font-size: 3.5em;
font-weight: bold;
margin-bottom: 2em;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
text-shadow: 0 0 30px rgba(102, 126, 234, 0.5);
}

.section {
margin: 4em 0;
}

.role {
font-size: 1.8em;
color: #ffd700;
text-transform: uppercase;
letter-spacing: 3px;
margin-bottom: 0.5em;
text-shadow: 0 0 20px rgba(255, 215, 0, 0.6);
}

.name {
font-size: 2.5em;
font-weight: 600;
margin: 0.3em 0;
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}

.subtitle {
font-size: 1.2em;
color: #a0aec0;
margin: 0.5em 0;
line-height: 1.6;
}

.link {
color: #60a5fa;
text-decoration: none;
font-size: 1em;
transition: color 0.3s;
}

.link:hover {
color: #93c5fd;
}

.description {
font-size: 1.1em;
color: #cbd5e0;
line-height: 1.8;
margin: 1em auto;
max-width: 700px;
padding: 0 2em;
}

.special-thanks {
font-size: 2em;
color: #48bb78;
margin: 3em 0 1em 0;
text-shadow: 0 0 20px rgba(72, 187, 120, 0.6);
}

.tech-stack {
font-size: 1.5em;
color: #ed8936;
margin-top: 4em;
}

.final-message {
font-size: 1.8em;
margin: 4em 0;
color: #e2e8f0;
font-style: italic;
}

.heart {
color: #f56565;
display: inline-block;
animation: pulse 1.5s infinite;
}

@keyframes pulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.2); }
}

.glow {
text-shadow: 0 0 10px currentColor;
}
</style>
</head>
<body>
<div class="stars" id="stars"></div>

<div class="credits-container">
<div class="credits-scroll">
<div class="title">StationeersServerUI</div>

<div class="section">
<div class="role">Project Lead & Creator</div>
<div class="name">JacksonTheMaster</div>
<div class="subtitle">J. Langisch</div>
<div class="description">
Inventor, initial and main developer, "sheephearder" - the main Author of StationeersServerUI
</div>
<a href="https://github.com/JacksonTheMaster" class="link" target="_blank">github.com/JacksonTheMaster</a>
</div>

<div class="section">
<div class="role">Executive Coordinator & Co-Author</div>
<div class="name">Seb</div>
<div class="subtitle">Sebastian Meier zu Biesen</div>
<div class="description">
Added oil to the fire - leading to the initial SteamServerUI idea ("if it runs Stationeers, why can't we run other games"),
made StationeersServerUI run on Linux & added initial Docker implementation.
Without you, the project wouldn't be where it is today! <span class="heart">❤️</span>
</div>
<a href="https://github.com/mitoskalandiel" class="link" target="_blank">github.com/mitoskalandiel</a>
</div>

<div class="section">
<div class="role">Backend & Security Expert</div>
<div class="name">MensRea</div>
<div class="description">
Backend improver & the security guy - ask him, get great ideas for optimization and backend design choices back.
</div>
<a href="https://github.com/akirilov" class="link" target="_blank">github.com/akirilov</a>
</div>

<div class="section">
<div class="role">Community Ambassador & Feature Visionary</div>
<div class="name">NAM - NonActionMan</div>
<div class="description">
Our first SSUI pioneer - a true SSUI poweruser and die-hard fan! Supporter & advertiser of the project.
</div>
<a href="https://steamcommunity.com/profiles/76561197995322389/" class="link" target="_blank">Steam Profile</a>
</div>

<div class="section">
<div class="role">Community Ambassador</div>
<div class="name">Fudd79</div>
<div class="description">
SSUI pioneer - another true SSUI poweruser!
</div>
<a href="https://github.com/SnorreSelmer" class="link" target="_blank">github.com/SnorreSelmer</a>
</div>

<div class="section">
<div class="role">Docker Integration</div>
<div class="name">1Solon</div>
<a href="https://github.com/1Solon" class="link" target="_blank">github.com/1Solon</a>
</div>

<div class="section">
<div class="role">Localization</div>
<div class="name">Locxion</div>
<div class="subtitle">Markus Bender</div>
<div class="description">
Parts of the German translation
</div>
<a href="https://github.com/Locxion" class="link" target="_blank">github.com/Locxion</a>
</div>

<div class="section">
<div class="special-thanks">Special Thanks</div>
<div class="name">semoro</div>
<div class="description">
Fixed Race Condition in SSE Handling: Identified and resolved a hard backend crash when SSE connections closed during message formatting.
</div>
</div>

<div class="section">
<div class="special-thanks">Created for the game "Stationeers" which is made by</div>
<div class="name">RocketWerkz, Dean Hall, New Zealand</div>
<div class="description">
The best game developers we could ever imagine
</div>
</div>

<div class="section">
<div class="tech-stack glow">Built With</div>
<div class="name">Go</div>
<div class="description">
Built with the Go programming language
</div>
</div>

<div class="final-message">
Thank you for using StationeersServerUI
</div>

<div style="height: 300px;"></div>
</div>
</div>

<script>
// Create stars
const starsContainer = document.getElementById('stars');
const numStars = 150;

for (let i = 0; i < numStars; i++) {
const star = document.createElement('div');
star.className = 'star';
const size = Math.random() * 2 + 1;
star.style.width = size + 'px';
star.style.height = size + 'px';
star.style.left = Math.random() * 100 + '%';
star.style.top = Math.random() * 100 + '%';
star.style.animationDelay = Math.random() * 3 + 's';
star.style.animationDuration = (Math.random() * 2 + 2) + 's';
starsContainer.appendChild(star);
}

// Restart animation when it ends
const creditsScroll = document.querySelector('.credits-scroll');
creditsScroll.addEventListener('animationend', () => {
creditsScroll.style.animation = 'none';
setTimeout(() => {
creditsScroll.style.animation = 'scroll-up 90s linear forwards';
}, 100);
});
</script>
</body>
</html>
8 changes: 4 additions & 4 deletions UIMod/onboard_bundled/assets/css/background.css
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ header {

.planet {
transform: translateY(-50%);
will-change: transform; /* Improves animation performance */
will-change: transform;
}

#banner {
Expand All @@ -188,12 +188,12 @@ header {
border-radius: 12px;
position: relative;
z-index: 1;
box-shadow: 0 0 30px rgba(0, 255, 171, 0.4);
box-shadow: 0 0 20px var(--button-glow), 0 0 20px var(--button-glow-soft);
transition: transform var(--transition-normal), box-shadow var(--transition-normal);
will-change: transform, box-shadow; /* Optimize performance */
will-change: transform, box-shadow;
}

#banner:hover {
transform: scale(1.02);
box-shadow: 0 0 40px rgba(0, 255, 171, 0.6);
box-shadow: 0 0 40px var(--button-glow), 0 0 20px var(--button-glow-soft);
}
Loading
Loading