2 KILL is a feature-packed Dutch-language crime RPG where you rise from street hustler to underworld kingpin. Commit daring crimes, steal and race cars, deal drugs, and gamble across multiple casino games—then expand into businesses, stocks, and land to build your criminal empire. Team up in clans for coordinated warfare, shared banks, garages, and upgrades.
A massive content set powers every corner of play: court and prison systems, missions, training and sports, marriage and social features, VIP monetization, and banner-driven events. It’s an ambitious, richly interactive mafia world designed to keep players battling, scheming, and climbing the ranks.
Name: 2 KILL (also: 2Kill.NL)
Tagline: "Can u handle it?"
Genre: Crime/Mafia text-based browser game
Type: Web-based multiplayer crime simulator
Developer: TONY (creator/owner)
Language: Dutch (Nederlands)
Website: www.2KILL.nl (defunct), www.voetbalgevecht.com (alternate domain)
Copyright: © 2KILL.NL MADE BY TONY!
Based On: "War of the Worlds" (referenced in handboek.php)
Date: April 4, 2007 (Beta version per home page news)
Active Development: ~2006-2007
Status: Beta version when archived
Game Concept: Dutch language crime game where players commit crimes, deal drugs, steal cars, gamble in casinos, and fight other criminals. Players can recruit friends and strangers to fight for them in clan wars.
Massive Codebase: At 29,417 lines of PHP, this is the 4th largest codebase in the entire collection, with 649 total files including extensive graphics (407 images + 5 Flash files).
29,417 PHP lines ranks as:
Admin files (17 admin-*.php):
Crime files:
Gambling files:
Drug files:
Car files:
Clan files:
Economic files:
VIP/Premium files:
Other systems:
Core tables:
Clan table columns (30+):
name, owner, started, type, info, clicks, clickstoday, cash, bank,
bankleft, bankmax, attwins, attlosses, defwins, deflosses, land,
homes, money_lvl1/2/3, def_lvl1/2/3, IPs, afbeelding, veiling,
pimp, kleur, pimpkleur, autosnu, maxautos, maxkogels, crush,
clanmisdaad
login}'");
Features:
window.onerror = blockError;Footer:
/ Global Settings /
$title = Voetbalgevecht; // Soccer fight?
$url = www.voetbalgevecht.com;
include("ubb.inc.php"); // UBB code parsing
if(!(@mysql_connect("localhost","database","pass") && @mysql_select_db("database"))) {
print <<
Wij hebben momenteel een database probleem wij zullen dit zo snel mogelijk oplossen Mvg 2KILL.NL
ENDHTML;
exit;
}
error_reporting(0); // Suppress ALL errors!
session_start();
include("_include-funcs.php");
include("_include_second.php");
if(isset($_SESSION['login'])) {
$dbres = mysql_query("SELECT *,UNIX_TIMESTAMP(signup) AS signup,UNIX_TIMESTAMP(online) AS online FROM [users] WHERE login='{$_SESSION['login']}'");
$data = mysql_fetch_object($dbres);
}
Critical flaws:
error_reporting(0) - suppresses all errors// Database access information
define ('DB_USER', 'jordy');
define ('DB_PASSWORD', '951357x12x'); // REAL PASSWORD!
define ('DB_HOST', 'localhost');
define ('DB_NAME', 'jordy');
$dbc = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ' . mysql_error() );
mysql_select_db (DB_NAME) OR die ('Could not select the database: ' .mysql_error() );
PRODUCTION CREDENTIALS IN SOURCE CODE
Two separate database connection files (confusion)
Dies with error message (information disclosure)
if(isset($_POST['login'],$_POST['pass'])) {
$login = mysql_real_escape_string($_POST['login']); // ESCAPED!
$pass = mysql_real_escape_string($_POST['pass']); // ESCAPED!
$dbres = mysql_query("SELECT login,activated FROM [users] WHERE login='{$_POST['login']}' AND pass=MD5('{$_POST['pass']}')");
if(($data = mysql_fetch_object($dbres)) && $data->activated == 1) {
$validate = md5(rand(0,1000));
setcookie("login",$data->login,time()+606024,"/",".2KILL.nl/");
setcookie("validate",$validate,time()+606024,"/",".2KILL.nl/");
mysql_query("REPLACE INTO [online](time,login,IP,validate) values(NOW(),'{$_SERVER['REMOTE_ADDR']}','{$data->login}','$validate')");
$_SESSION['login'] = $data->login;
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
$dbres = mysql_query("SELECT *,UNIX_TIMESTAMP(signup) AS signup FROM [users] WHERE login='{$_SESSION['login']}'");
$_SESSION['data'] = mysql_fetch_object($dbres);
}
}
Features:
Lost password system:
else if($_GET['x'] == "lostpass") {
// Email-based password reset
$newpass = rand(100000,999999); // 6-digit random password
mysql_query("UPDATE [users] SET pass=MD5('$newpass') WHERE login='{$data->login}'");
mail($data->email,"2KILL.NL password","...http://www.2KILL.nl/login.php?x=lostpass&id=$id&code=$code","From: 2KILL.nl ");
}
Logout:
else if($_GET['x'] == "logout") {
mysql_query("DELETE FROM [online] WHERE login='{$_COOKIE['login']}' AND validate='{$_COOKIE['validate']}' AND IP='{$_SERVER['REMOTE_ADDR']}'");
setcookie("login",'',time()-246060,"/",".2kill.nl/"); // Lowercase domain!
setcookie("validate",'',time()-246060,"/",".2KILL.nl/");
unset($_SESSION['login'], $_SESSION['IP'], $_SESSION['data']);
}
function check_login() {
if(isset($_SESSION['login'],$_SESSION['IP']) && $_SESSION['IP'] == $_SERVER['REMOTE_ADDR']) {
// Session active + IP match
if(! isset($_COOKIE['login'],$_COOKIE['validate'])) {
$validate = md5(rand(0,1000));
setcookie("login",$_SESSION['login'],time()+606024,"/","");
setcookie("validate",$validate,time()+606024,"/","");
}
mysql_query("REPLACE INTO [online](time,IP,login,validate) values(NOW(),'{$_SERVER['REMOTE_ADDR']}','{$_SESSION['login']}','$validate')");
return TRUE;
}
else {
// Check cookie authentication
if(isset($_COOKIE['login'],$_COOKIE['validate'])) {
$login = $_COOKIE['login'];
$validate = $_COOKIE['validate'];
$query = mysql_query("SELECT FROM [online] WHERE login='$login' AND validate='$validate' AND IP='{$_SERVER['REMOTE_ADDR']}' AND UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(time) < 6060*24");
if($user = mysql_fetch_object($query)) {
mysql_query("UPDATE [online] SET time=NOW() WHERE ...");
$_SESSION['login'] = $user->login;
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
return TRUE;
}
}
return FALSE;
}
}
Features:
Basic crimes (misdaden.php):
Organized crime (orgcrime.php):
drugsnew.php, drugs.php:
Extensive car mechanics:
Casino games:
Lottery systems (3 versions!):
Casino ownership:
CREATE TABLE [casino] (
spel int(250), -- Game type
land int(255), -- Country
tijd datetime, -- Time
vw varchar(255), -- ?
maximum int(255), -- Max bet
owner varchar(255), -- Owner username
bank int(11), -- Casino bankroll
code int(2) -- Code
)
Features:
[clans] table (30+ columns):
CREATE TABLE [clans] (
name varchar(16),
owner varchar(16),
started datetime,
type int(1),
info text,
clicks int(5), -- Click tracking
clickstoday int(3),
cash int(9),
bank int(9) default 10000,
bankleft int(2) default 10,
bankmax int(5) default 10000,
attwins int(6), -- Attack wins
attlosses int(6), -- Attack losses
defwins int(6), -- Defense wins
deflosses int(6), -- Defense losses
land int(6) default 300,
homes int(3) default 2,
money_lvl1/2/3 int(3), -- Money upgrades
def_lvl1/2/3 int(3), -- Defense upgrades
IPs text, -- IP tracking
afbeelding varchar(255), -- Image URL
veiling varchar(255), -- Auction
pimp varchar(255) default 'Geen', -- Pimp name
kleur varchar(255) default '#FFFFFF', -- Color
pimpkleur varchar(255) default '#FFFFFF', -- Pimp color
autosnu varchar(255), -- Auto snu?
maxautos varchar(255), -- Max cars
maxkogels varchar(255), -- Max bullets
crush int(11),
clanmisdaad int(3) default 10 -- Clan crime
)
Clan features:
Pimp system:
Bank (bank.php):
bank int(9) default 10000,
bankleft int(2) default 10,
bankmax int(5) default 10000
Stock market (beurs.php):
CREATE TABLE [beurs] (
id int(2),
beurstijd datetime,
waarde int(9) default 100, -- Value
positie int(2) -- Position (-1, 1)
)
Features:
Businesses (bedrijven.php):
Market (markt.php):
Multiple prison files:
Court system:
training.php, training1.php, training2.php:
Sport:
Paid features (betaald.php through betaald10.php):
SMS payment:
Indicates monetization through premium features.
Marriage:
Messages:
Profile:
Search:
Jobs:
Missions:
Click tracking:
Purpose: Likely banner/advertising clicks for revenue.
Polling:
Basic forum:
Comprehensive admin panel:
Administrative functions:
Automated tasks:
[cron] table:
CREATE TABLE [cron] (
time datetime,
name varchar(16), -- 'hour', 'day', 'week', 'month'
PRIMARY KEY (name)
)
Sample data (Feb 17, 2007):
Land ownership:
Cities:
Banner system:
Tools:
Stats:
Notes:
Screens:
Contact:
Signup:
MD5 with Escaping:
$login = mysql_real_escape_string($_POST['login']); //
$pass = mysql_real_escape_string($_POST['pass']); //
$dbres = mysql_query("SELECT ... WHERE login='{$_POST['login']}' AND pass=MD5('{$_POST['pass']}')");
mysql_real_escape_string() used (RARE!)
MD5 password hashing
No salting
MD5 deprecated
⚠️ Inconsistent escaping (only in login, not everywhere)
Login page:
$login = mysql_real_escape_string($_POST['login']); // ESCAPED!
Elsewhere (_include-config.php):
$dbres = mysql_query("SELECT * FROM [users] WHERE login='{$_SESSION['login']}'"); // NO ESCAPING!
SQL escaping in login.php (only place!)
No escaping in 99% of code
Direct session variable use
⚠️ Vulnerable to SQL injection everywhere except login
mysql_connect.php:
define ('DB_USER', 'jordy');
define ('DB_PASSWORD', '951357x12x'); // REAL PASSWORD!
define ('DB_NAME', 'jordy');
PRODUCTION CREDENTIALS IN SOURCE CODE
Two separate database connection files
Password "jordy" and user "951357x12x"
⚠️ CRITICAL SECURITY FLAW
Dual authentication:
// Cookie-based
setcookie("login",$data->login,time()+606024,"/",".2KILL.nl/");
setcookie("validate",$validate,time()+606024,"/",".2KILL.nl/");
// Session-based
$_SESSION['login'] = $data->login;
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
24-hour cookie expiration
IP address validation (prevents session hijacking!)
Validation token (md5(rand(0,1000)))
Online tracking ([online] table)
No HTTPS enforcement
Validation token weak (low randomness)
No CSRF protection
error_reporting(0); // SUPPRESS ALL ERRORS!
function blockError(){return true;}
window.onerror = blockError; // SUPPRESS JS ERRORS!
Complete error suppression (security through obscurity)
Hides bugs and vulnerabilities
Makes debugging impossible
Verbannen table:
CREATE TABLE Verbannen (
IPadres varchar(255),
Datum varchar(255),
Opmerkingen text,
Verbannen char(1) default '0'
)
Clan IP tracking:
IPs text -- Stores all clan member IPs
IP banning system
Multi-account detection (admin-dubbel.php)
IP tracking in clans
17 admin files = extensive control:
Strengths:
Weaknesses:
Critical flaws:
Verdict: Better than PimpAttack (2/10 - plaintext passwords) but worse than Promisance v4.3 (4/10) due to exposed credentials and error suppression.
All game content in Dutch (Nederlands):
Target audience: Dutch-speaking players.
Three domains referenced:
Domain confusion suggests rebranding or multiple versions.
5 SWF files (102 KB):
cursor.cur (2 KB):
291 GIF files (2,181 KB):
Notable images:
11 CSS files:
Customizable appearance per player preference.
ubb.inc.php, ubb.php:
4 time intervals:
Automated maintenance:
Multiple versions of same functionality:
Indicates:
_include-banners.php:
Home page news (April 4, 2007):
> "Wij verkeren nog in een Beta versie dus u kunt afentoe wat foutjes tegenkomen en wij vragen u dan ook dat zo snel mogelijk te melden op het Forum!"
Translation: "We are still in a Beta version so you may encounter some errors and we ask you to report them on the Forum as soon as possible!"
Active development in 2007 when archived.
handboek.php:
alert('© Copyright, War of the Worlds')
Based on or inspired by "War of the Worlds" game engine.
roulette.php:
Roulette v1.4 made by wavoe,
Third-party component integrated.
2 KILL represents:
Similar Dutch games:
Evidence from code:
Development span: ~February-April 2007 (at minimum).
Minimal information:
Multiple revenue streams:
Indicates commercial operation, not hobbyist project.
Gamebackup.nl:
Gamebackup.nl - Download gratis alle RPG Games.txt
Gamebackup.nl.url
Downloaded from:
Dutch Crime Culture:
Reflects Dutch urban culture circa 2007.
Massive feature set:
db.sql.txt (1,102 lines):
Likely 40-50 total tables based on feature count.
Fully functional Dutch crime game:
Missing/Unclear:
Overall: Highly playable for Dutch speakers, comprehensive feature set.
29,417 lines = 4th LARGEST:
3.5x larger than Promisance Enhanced (8.3K).
Crime games in collection:
2 KILL is largest crime game by far.
Only Dutch language game in collection:
Target audience = Netherlands, Belgium (Flanders).
Most feature-rich crime game:
More ambitious than any crime game analyzed so far.
291 GIF + 94 JPG + 13 PNG + 9 BMP = 407 images:
Multimedia focus uncommon for text-based games.
Rating: 3/10
Better than:
Worse than:
Similar security flaws:
Most commercialized game so far:
Serious commercial operation, not hobbyist.
Most extensive clan features:
More sophisticated than Promisance clan system.
Breakdown:
Tier Classification: MID-TIER AMBITIOUS CRIME GAME
Important for:
Cultural impact:
NOT RECOMMENDED without major fixes:
Best use cases:
Excellent example of Dutch localized gaming, commercial browser game operation, and ambitious feature development. Shows peak 2007-era crime game with car system, casino ownership, stock market, and monetization strategy.
Cautionary tale: Demonstrates the "feature bloat meets security neglect" trade-off from 2007 commercial era. Exposed credentials in production code!
CANNOT be deployed publicly without removing exposed credentials and implementing comprehensive SQL escaping. Even with fixes, needs complete security overhaul (XSS, CSRF, bcrypt, mysqli/PDO migration).
| Features & Content | ★★★★★ 5/5 |
|---|---|
| Code Quality (2007) | ★★★★☆ 4/5 |
| Code Quality (2025) | ★☆☆☆☆ 1/5 |
| Security | ☆☆☆☆☆ 0/5 |
| Dutch Market Appeal | ★★★★☆ 4/5 |
| Commercial Execution | ★★★★☆ 4/5 |
| Innovation | ★★★★☆ 4/5 |
| Overall Grade | C Ambitious vision, catastrophic security |
Most feature-rich crime game analyzed with car racing, casino ownership, stock market, court system, and missions. Best commercial operation (VIP, SMS, ads). Peak Dutch gaming ambition from 2007.
Verdict: With proper security hardening, would be 7-8/10. As-is, represents the dangerous trade-off between feature development and security practices that characterized the 2007 commercial browser game era.
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.