Command a starfaring civilization in a turn-based 4X strategy epic. Explore a galaxy of anomalies and nebulae, colonize planets, construct starbases and ship hulls, engage in orbital and ground battles, and outsmart rivals through diplomacy, espionage, and political maneuvering. Skrupel’s robust systems make each campaign a story of discovery, expansion, and conflict.
Built for competitive play with per-game forums, tournaments, rankings, and rich race content, Skrupel delivers classic space conquest with depth and replayability. It’s a mature, feature-complete experience that rewards strategic thinking and long-term planning.
Name: Skrupel - Tribute Compilation
Version: V0.974
Genre: Turn-based space strategy game (4X: Explore, Expand, Exploit, Exterminate)
Type: Web-based multiplayer strategy game
Developer: Bernd Kantoks
Email:
Website: http://www.skrupel.de (official portal)
Copyright: © 2010 Bernd Kantoks
License: GNU General Public License v2 (or later)
Language: German (Deutsch) with English and French translations
Status: Mature production release
Game Style: Similar to VGA Planets, Master of Orion, Space Empires
GAME CONCEPT: Browser-based turn-based space conquest game. Players control space empires, colonizing planets, building fleets, conducting diplomacy, engaging in orbital/ground combat. Race-based gameplay with unique species traits (like Orion Conglomerate). Meta-game support for tournaments and rankings.
INCLUDED RACE: Orion Konglomerat V1.2 (additional races available for download from skrupel.de)
52,093 PHP lines ranks as substantial codebase:
Well-organized modular structure:
Root:
admin/ - Admin control panel:
inhalt/ - Game interface:
bilder/ - Image assets (606 GIF + 264 JPG + 30 PNG):
daten/ - Game data:
lang/ - Localization:
extend/ - Extensions directory:
updates/ - Update scripts (version migration)
21+ tables created:
Core tables:
Game entities:
Combat:
Ship hulls:
Communication:
Diplomacy:
Intelligence:
Meta-game:
Unique serial key: Generated at install (40-char random consonant-vowel pattern like "babecidufoguhijok...")
Multi-language support:
`php
if(array_key_exists('sprache', $_GET) && preg_match('/[abc]+/', $_GET['sprache']) && is_dir("lang/".$_GET['sprache'])) {
include ("lang/".$_GET['sprache']."/lang.index.php");
} else {
include ("lang/".$language."/lang.index.php");
}
`
Database connection:
`php
$conn = @mysql_connect($server.':'.$port,$login,$password);
$db = @mysql_select_db($database,$conn);
`
GZIP compression:
`php
function compressed_output() {
$encoding = getEnv("HTTP_ACCEPT_ENCODING");
$useragent = getEnv("HTTP_USER_AGENT");
$method = trim(getEnv("REQUEST_METHOD"));
$msie = preg_match("=msie=i", $useragent);
$gzip = preg_match("=gzip=i", $encoding);
if ($gzip && ($method != "POST" or !$msie)) {
ob_start("ob_gzhandler");
} else {
ob_start();
}
}
`
Login via hash (direct game links):
`php
if (($hash_f = str_get('hash')) !== false) {
$zeiger = @mysql_query("SELECT * FROM $skrupel_spiele WHERE
spieler_1_hash = '$hash_f' or
spieler_2_hash = '$hash_f' or
spieler_3_hash = '$hash_f' or
... (spieler_4-10_hash)");
if (@mysql_num_rows($zeiger)==1) {
// Auto-login player via hash
}
}
`
Features:
`php
//Datenbankzugangsdaten
$server="localhost";
$port="3306";
$login="";
$password="";
$database="";
//Adminzugangsdaten
$admin_login="admin";
$admin_pass="admin"; // ← DEFAULT PASSWORD!
//Absenderemail des Servers
$absenderemail="
date_default_timezone_set('Europe/Berlin'); // ← German timezone
//Tabellen (21 table definitions)
$skrupel_planeten='skrupel_planeten';
$skrupel_spiele='skrupel_spiele';
// ... (19 more tables)
$language='de'; // Default German
$ping_off=0;
//Player colors (10 players max)
$spielerfarbe[1]="#1DC710"; //grün (green)
$spielerfarbe[2]="#E5E203"; //gelb (yellow)
$spielerfarbe[3]="#EAA500"; //orange
$spielerfarbe[4]="#875F00"; //braun (brown)
$spielerfarbe[5]="#bb0000"; //rot (red)
$spielerfarbe[6]="#D700C1"; //rosa (pink)
$spielerfarbe[7]="#7D10C7"; //lila (purple)
$spielerfarbe[8]="#101DC7"; //blau (blue)
$spielerfarbe[9]="#049EEF"; //hellblau (light blue)
$spielerfarbe[10]="#10C79B"; //türkis (turquoise)
//Error handling
ini_set('display_errors', 0);
ini_set('log_errors', 0);
ini_set('ignore_repeated_errors', 1);
ini_set('error_reporting', E_ALL | E_STRICT);
`
Configuration features:
Checks existing installation:
`php
$zeiger = @mysql_query("SELECT version FROM $skrupel_info");
$array = @mysql_fetch_array($zeiger);
if ($array["version"] == "0.974") {
$installed = true;
}
`
Creates 21 tables:
Generates unique serial:
`php
$conso=array("b","c","d","f","g","h","j","k","l","m","n","p","r","s","t","v","w","x","y","z");
$vocal=array("a","e","i","o","u");
$serial="";
@srand((double)microtime()*1000000);
for($f=1; $f<=20; $f++) {
$serial.=$conso[rand(0,19)];
$serial.=$vocal[rand(0,4)];
}
@mysql_query("INSERT INTO $skrupel_info VALUES ('0.974',0,0,0,'http://',0,'','$serial')");
`
Creates 40-character consonant-vowel pattern serial (e.g., "babecidufoguhijokalisomupopurasuvexa")
Turn processing engine:
Turn-based gameplay: Host processes all player orders simultaneously at round end.
Three-step admin setup:
Solo play supported: liesmich.txt recommends creating solo game for testing.
Included race:
Race data structure:
Additional races: Available for download at skrupel.de portal
Race modularity: All race data in /daten/ subdirectories - easy to add custom races
Planet attributes:
Planet interface:
`php
$zeiger = @mysql_query("SELECT * FROM $skrupel_planeten where besitzer=$spieler and spiel=$spiel order by name");
$planetenanzahl = @mysql_num_rows($zeiger);
`
Features:
Planet classes: Multiple types (images stored as {klasse}_{bild}.jpg)
Fleet management:
Ship hulls (skrupel_huellen table):
Ship construction: Requires factories, resources, tech level
Starbases:
Functions:
Three combat types:
Combat logging (skrupel_kampf table):
Combat viewer: gefecht.php displays combat replays
Galaxy map:
Galaxy structures: gala_strukturen.txt defines anomalies, nebulae, special features
Five communication channels:
News system (skrupel_neuigkeiten):
Political relations (skrupel_politik):
Political requests (skrupel_politik_anfrage):
Intelligence gathering:
Scan data (skrupel_scan table): Stores discovered information
Encounters (skrupel_begegnung table): First contact logs
Integrated forums:
Per-game forums: Each game has own forum instance
Tournament/ranking features:
Advanced competitive play: Tournaments, rankings, player classes
Build infrastructure:
Comprehensive documentation:
Strategic overview:
End turn:
Host execution: All player turns processed simultaneously by host system
Plugin architecture:
Three languages:
Language files: Each screen has corresponding lang file (e.g., lang.planeten.php)
URL parameter: ?sprache=de/eng/fr switches language
Configuration:
`php
$admin_login="admin";
$admin_pass="admin"; // ← DEFAULT PASSWORD!
`
Default admin password "admin/admin" (CRITICAL!)
Plaintext password comparison (visible in code)
No password hashing detected
No salting
Hash-based game login:
`php
if (($hash_f = str_get('hash')) !== false) {
// Auto-login via spieler_X_hash
}
`
⚠️ Direct game access via hash - convenient but security risk if hashes leaked
Vulnerable examples:
`php
$zeiger = @mysql_query("SELECT * FROM $skrupel_spiele WHERE
spieler_1_hash = '$hash_f' or
spieler_2_hash = '$hash_f' or ...");
$zeiger = @mysql_query("SELECT * FROM $skrupel_planeten where besitzer=$spieler and spiel=$spiel order by name");
`
Direct string interpolation (no escaping, no prepared statements)
No mysql_real_escape_string() usage
Commented-out escaping attempt:
`php
//$_POST = @array_map('mysql_real_escape_string', $_POST);
//$_GET = @array_map('mysql_real_escape_string', $_GET);
`
Critical vulnerability: All queries use direct variable insertion
Everywhere:
`php
$conn = @mysql_connect(...);
$db = @mysql_select_db(...);
$zeiger = @mysql_query(...);
$ok = @mysql_data_seek(...);
$array = @mysql_fetch_array(...);
`
@ operator suppresses errors on ALL database operations
ini_set('display_errors', 0); in config
No error logging to file
Result: SQL injection errors silently ignored = easier exploitation
Helper functions (inc.hilfsfunktionen.php - not examined but referenced):
`php
$login_f = str_post('login_f');
$pass_f = str_post('passwort_f');
$spiel_slot = int_post('spiel_slot');
`
Type-checking functions (str_post, int_post, str_get)
⚠️ Implementation unknown - could be basic or robust
Session validation (inc.check.php - referenced but not examined)
⚠️ Unknown session security - need to examine inc.check.php
Unknown - German text output, HTML generation not examined for escaping
Player-specific queries:
`php
$zeiger = @mysql_query("SELECT * FROM $skrupel_planeten where besitzer=$spieler and spiel=$spiel");
`
Player ownership checks (besitzer=$spieler)
Game isolation (spiel=$spiel)
⚠️ Admin panel protection - inc.check.php likely validates
Strengths:
Critical weaknesses:
Compared to collection:
Cannot be deployed publicly without:
100% German-developed:
Target audience: German-speaking strategy gamers
Game mechanics similar to:
Classic 4X mechanics:
Similar to play-by-email (PBEM) games:
Advantages:
Unique color assignment:
`php
$spielerfarbe[1]="#1DC710"; //grün
$spielerfarbe[2]="#E5E203"; //gelb
...
$spielerfarbe[10]="#10C79B"; //türkis
`
10 simultaneous players - large multiplayer support!
Extensive graphics library:
Visual polish: More graphics than most browser games
Planet variety:
Shows: Significant art investment
Code uses German terms:
Not translated to English internally - authentic German development
UI polish:
Rare in browser games!
Multimedia:
HTC behavior file:
`
.htc file (4 KB) - IE behavior file
`
IE-specific MSIE detection:
`php
$msie = preg_match("=msie=i", $useragent);
`
2010 development = IE6/7/8 era (pre-modern browsers)
CSS scrollbar customization:
`css
scrollbar-DarkShadow-Color:#444444;
scrollbar-3dLight-Color:#444444;
scrollbar-Track-Color:#444444;
scrollbar-Face-Color:#555555;
scrollbar-Shadow-Color:#222222;
scrollbar-Highlight-Color:#888888;
scrollbar-Arrow-Color:#555555;
`
IE-only feature (doesn't work in modern browsers)
Community infrastructure:
Active ecosystem around game engine
GNU GPL terms:
> "You can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or (if you wish) any later version."
Open source commitment with copyleft protection
Key requirements (§ sections):
§ 3: Extensions/races not included in main download may have separate licenses
§ 4: Copyright notices in HTML title tags and comments cannot be modified
§ 5: Can rename/rebrand game BUT must provide access to info that:
§ 6: Registration must be FREE - only nickname + email required
Cannot force additional registration in other systems
§ 7: Cannot charge for playing
Can charge for hosting/administration services
§ 8: Hosting/administration can be commercial
§ 9: Skrupel logo (spiral) usage restricted to game-related pages
Protects: Free access, open source nature, while allowing commercial hosting
Text-based game data:
Modding-friendly: Easy to edit in text editor
Organized by function:
Clean separation of concerns
Skrupel represents:
Contemporaries:
VGA Planets influence:
Skrupel = browser-based VGA Planets for new generation
Strong German game development:
2000s = golden age of German browser gaming
PBEM games → Browser games:
2000s transition period from email to web-based turns
Context:
Skrupel = mature browser strategy at genre peak
Implies:
"Tribute" suggests honoring predecessors
Single included race:
Name reference: Master of Orion (Orion Sector setting)
GPL v2 release:
Contrasts: Commercial games like Ogame (closed source)
Community infrastructure:
Long-term support indicated by maintained portal
Core game ( Complete):
Galaxy ( Complete):
Planets ( Complete):
Ships ( Complete):
Starbases ( Complete):
Combat ( Complete):
Communication ( Complete):
Diplomacy ( Complete):
Espionage ( Complete):
Meta-game ( Complete):
Help system ( Complete):
Multi-language ( Complete):
Extensions ( Architecture):
Included:
Missing:
Functional systems:
Minor limitations:
Overall: FULLY FUNCTIONAL production game ready for deployment (after fixing security!)
ONLY game in collection with:
52,093 PHP lines = substantial:
920 image files = MOST IN COLLECTION!
3 languages (de/eng/fr):
Compares to:
Tied for most languages with multi-language capable games
Most complex strategy game:
Deeper than:
Only asynchronous multiplayer:
All other games: Real-time or semi-real-time
10 players maximum:
2/10 security = WORST TIER:
Despite great gameplay, CANNOT deploy publicly without security fixes
Excellent:
Better than most games in collection
Active ecosystem:
Similar to:
95% complete = TOP TIER:
Only limitations:
Unique race system:
No other game has modular race system
Breakdown:
Tier Classification: HIGH-QUALITY STRATEGIC GAME WITH CRITICAL SECURITY FLAWS
Important for:
Demonstrates:
NOT RECOMMENDED without security fixes:
WITH security fixes = EXCELLENT:
Estimated fix time: 40-80 hours (security + modernization)
For 2010 standards: 9/10 (excellent 4X game, complete features, polished)
For 2025 deployment: 4/10 (critical security flaws prevent use)
For learning/reference: 8/10 (good 4X architecture, modular design)
Best for:
Not for:
Comparison:
Historical value: Excellent example of mature German browser-based 4X strategy game development. Shows peak 2010-era turn-based strategy with VGA Planets influence, complete feature set, and active community support. Represents professional German game design in golden age of browser gaming.
Technical merit: High - well-organized code, modular architecture, complete features. Security flaws prevent higher rating but architecture is solid.
Playability verdict: Fully functional production game - 95% complete with all major systems working. Single included race (more downloadable) only limitation. After security fixes, would be 9/10 excellent 4X game.
Final verdict: Complete and polished 4X strategy game with VGA Planets-style turn-based gameplay, 920 graphics (most in collection!), three combat types, 10-player multiplayer, race system, meta-game, and multi-language support. CRITICAL security vulnerabilities (default admin password, SQL injection, no password hashing) prevent deployment without fixes. Represents peak German browser strategy gaming (2010) with excellent features but 2010-era security. With 40-80 hours security work, would rate 9/10. As-is, demonstrates professional 4X game design in unpatched state. Best value as fully functional strategy game needing security modernization, or as architectural reference for turn-based multiplayer 4X systems.
---
Analysis Date: December 11, 2025
Archive Location: d:\_HOUSE\SOCIALMUD\WWW\_MUD Games\unzipped\skrupel\Skrupel\
Game #61 of 79 in systematic browser game analysis project
Previous: Shadows Rising v0.0.5b (6/10) - Pre-alpha RPG engine, multi-database
Next: Game 62 - Continuing systematic analysis!
Special Notes:
Running many of the scripts in this archive on a live server presents a serious security risk. These projects were created before modern hardening practices and may contain vulnerabilities that can compromise your system.
We strongly recommend using this code for reference and analysis only, or in isolated local environments. By downloading these files, you accept full responsibility for their use.