Rule the underworld in a relentless Dutch mafia RPG that blends turf wars, high-stakes heists, and city-by-city domination. Build your family, assemble crews, and coordinate organized crimes while you race cars, kidnap rivals, and gamble big to bankroll your rise. With alliances you can seal by handshake and crimes that leave witnesses, every move changes the map.
Own the streets across 12 U.S. state cities by buying and managing buildings—bullet factories, roulette tables, slot parlors, and train stations—to fuel your empire. Plan kidnappings, run detective ops, and climb rankings as your family’s respect grows. It’s gritty, fast, and unmistakably mid-2000s Dutch: a sandbox where loyalty, timing, and nerve decide who becomes the boss.
Title: Northern Maffia / Northern-Maffia (note: "Maffia" is Dutch spelling)
Folder Name: nothern_mafia (typo: missing 'r' in "Northern")
Developer: Unknown (no credits found)
Website: www.northern-maffia.com / www.undernation.com/nm
Release Date: ~2005 (SQL dump: September 1, 2005)
Language: Dutch (Nederlands) - all UI, variable names, comments
Type: Dutch Mafia Browser RPG
Database: worldcrime_game / waushare_unation
Status: Abandoned (website dead, domain available)
Historical Context: Dutch browser gaming scene (2005-2008)
Archive Contains:
Sample Credentials (in code):
`php
// _include-config.php
mysql_connect("localhost","waushare_unation","un123")
mysql_select_db("waushare_unation")
`
Dutch Game Features:
---
Language: PHP 4.3.11 (from SQL header)
Database: MySQL 4.0.23 (MyISAM engine)
Framework: None (pure procedural PHP)
Structure: Include-based (globals pattern)
File Statistics:
Core Files:
`
index.php - Frameset launcher
_include-config.php - Database + globals (236 lines!)
_include-funcs.php - Utility functions
_include-jail.php - Jail check
login.php - Authentication (125 lines)
register.php - Registration (181 lines)
menu.php - Left menu
status.php - Status display (395 lines)
header.php - Top banner
`
Database Architecture (2,215-line SQL!):
31+ Tables (Dutch naming):
`sql
[auto] - Cars (soort, schade, owner, land)
[buildings] - Property (bulletfactory, roulette, slot, trainstation)
[cron] - Cron jobs
[detective] - Detective system
[donates] - Donations
[drank] - Drinks
[drugs] - Drug system
[families] - Family/gang system (Dutch: familie)
[garage] - Car garage
[getuige] - Witness system (Dutch)
[handdruk] - Handshake system (Dutch!)
[honourpoints] - Honor system
[land] - Countries (12 US states!)
[landen] - Travel system
[landen1] - Travel variant
[logs] - Action logs
[messages] - Mail system
[omnilog] - Omnipresent logging (POST/GET tracking!)
[online] - Online users
[orgcrime] - Organized crime
[temp] - Temporary data
[users] - Player accounts
`
Unique Tables:
[handdruk] - "Handshake" system (alliance/treaty feature)[getuige] - "Witness" system (crime witnesses)[omnilog] - Complete POST/GET/IP logging (privacy nightmare!)Buildings System (12 US states):
Building Types:
---
1. Authentication System
`php
// login.php line 8
$dbres = mysql_query("SELECT login,activated
FROM [users]
WHERE login='{$_POST['login']}'
AND pass='{$_POST['pass']}'");
`
2. Family System (Gangs)
`
fam.php - Family overview
beginfam.php - Create family
joinfam.php - Join family
fambank.php - Family bank
famedit.php - Edit family
famgarage.php - Family garage
famshop.php - Family shop
famdonate.php - Donate to family
fammsg.php - Family messages
fampage.php - Family page
famprofile.php - Family profile
famlijst.php - Family list
`
Dutch Terminology:
3. Organized Crime (orgcrime.php - 795 lines!)
4. Crime System (crimes.php - 350 lines)
`php
// crimes.php line 324
$code = md5($codene)
`
5. Vehicle System
`
auto.php - Car management (validation MD5!)
autoshop.php - Buy cars
autorace.php - Car racing
auto_stelen.php - Steal cars (Dutch: "stelen" = steal)
garage.php - Personal garage
famgarage.php - Family garage
carsel.php - Car selection
`
6. Property/Buildings
`
bezit.php - Property overview (399 lines)
establishment.php - Buy buildings
est.php - Building management
`
12 Cities with buildings:
7. Economy
`
bank.php - Banking
banknieuw.php - New bank system
shop.php - Shop
shop1.php - Shop variant (517 lines!)
clanshop.php - Clan shop
famshop.php - Family shop
crewshop.php - Crew shop
`
8. Travel System
`
travel.php - Travel between cities
vliegveld.php - Airport (Dutch: "vliegveld")
`
12 US States:
California, Ohio, New York, Texas, Nevada, New Jersey, Illinois, Colorado, Michigan, Louisiana, Pennsylvania, Admin Palace
9. Items/Drugs
`
drug.php - Drug dealing
drank.php - Drinks (Dutch: "drank")
type.php - Item types
type_shop.php - Type shop
`
10. Combat
`
kill.php - Attack players
gijzelen.php - Kidnapping (Dutch: "gijzelen" - 350 lines!)
gta.php - GTA-style missions (313 lines)
hitlist.php - Hit list
deadlist.php - Dead players
`
11. Jail/Hospital
`
gevangenis.php - Prison (Dutch: "gevangenis")
jail.gif - Jail graphic
ziekenhuis.php - Hospital (Dutch: "ziekenhuis")
health.php - Health system
`
12. Justice System
`
rechtbank.php - Court (Dutch: "rechtbank")
getuige - Witness system
detective - Detective investigation
`
13. Honor System
`
honourpoints.php - Honor points
honourrank.php - Honor ranking
handdruk - Handshake/alliance (unique!)
`
14. Social Features
`
message.php - Messaging (367 lines)
playermess.php - Player messages
playermessa.php - Message management (499 lines!)
playermessadd.php - Add message
fammsg.php - Family messages
friend.php - Friends list
`
15. Crew System
`
crew-forum.php - Crew forum
crew-hq.php - Crew HQ
crew-messages.php - Crew messages (354 lines)
crew-topics.php - Crew topics
crew-messageadd.php - Add message
crewbank.php - Crew bank
crewdonate.php - Donate to crew
crewlog.php - Crew log
crewmail.php - Crew mail
crewshop.php - Crew shop
clan.php - Clan system (446 lines)
clanhq.php - Clan HQ
`
Multiple Group Systems:
16. Forum System
`
forum.php - Forum
forum/ - Forum directory
crew-forum.php - Crew forum
`
17. Mini-Games
`
roulette.php - Roulette (345 lines)
slot.php - Slot machine
racetrack.php - Horse racing (567 lines!)
autorace.php - Car racing
gta.php - GTA missions
`
18. Market/Trading
`
veiling.php - Auction (Dutch: "veiling" - 407 lines!)
verkoop.php - Sell (Dutch: "verkoop")
`
19. Admin Panel
`
admin.php - Main admin
admin2.php - Admin level 2
admin3.php - Admin level 3
admin-basic.php - Basic admin
admin-donate.php - Donation management
admin-familie.php - Family admin
admin-msg.php - Message admin
admin-poll.php - Poll admin
admin-rechtbank.php - Court admin
admin-search.php - Search admin
adminmen.php - Admin menu
adminmen2-6.php - Admin menus 2-6
adminstats.php - Admin stats
maak-admin.php - Make admin
ipbanner.php - IP banning
straffen.php - Punishments (Dutch: "straffen")
`
Admin Features:
20. Cron Jobs
`
_cron_day.php - Daily tasks
_cron_hour.php - Hourly tasks
_cron_week.php - Weekly tasks
_cron_month.php - Monthly tasks
_cron_horserace.php - Horse race automation
`
21. Other Features
`
poll.php - Polling
poll.inc.php - Poll includes
snews.php - News system (1,031 lines!)
zoek.php - Search (618 lines!)
toplijst.php - Top list
statistieken.php - Statistics
profile.php - User profile
user.php - User info
users.php - User list
online.php - Online users
testament.php - Testament/will
sollicitatie.php - Job application (Dutch: "sollicitatie")
huwelijk.php - Marriage (Dutch: "huwelijk")
lead.php - Leadership
overzicht.php - Overview
FAQ.php - FAQ
manual.htm - Manual
`
22. Payment System
`
betaal1.php - Payment page 1
betaal2.php - Payment page 2
betaal3.php - Payment page 3
betaalmenu.php - Payment menu
`
23. Miscellaneous
`
bullet.php - Bullets
bullet3.php - Bullet system 3
bulletcalculator.php - Bullet calculator
booze.php - Alcohol
bescherming.php - Protection (Dutch: "bescherming")
besturing.php - Control (Dutch: "besturing")
`
---
CRITICAL FLAWS:
1. PLAINTEXT PASSWORD STORAGE
`php
// login.php line 8
$dbres = mysql_query("SELECT login,activated
FROM [users]
WHERE login='{$_POST['login']}'
AND pass='{$_POST['pass']}'");
`
ZERO password hashing! Passwords stored plaintext in database.
2. SOME SQL INJECTION PREVENTION (Inconsistent)
`php
// _include-config.php has addslashes() loop
foreach($_POST as $key => $value) {
if(gettype($_POST[$key]) == "array")
foreach($_POST[$key] as $key2 => $value2)
$_POST[$key][$key2] = addslashes($_POST[$key][$key2]);
else
$_POST[$key] = addslashes($_POST[$key]);
}
`
Good: Global addslashes() on POST/GET/COOKIE
Bad: Some files use quote_smart(), others don't
Inconsistent protection!
3. MD5 USED FOR VALIDATION ONLY
`php
// crimes.php line 324
$code = md5($codene) // Only for anti-bot validation!
`
MD5 used for validation codes, NOT passwords!
4. OMNILOG PRIVACY NIGHTMARE
`php
// _include-config.php lines 42-51
// Logs EVERY POST/GET request with IP, forwarded headers
mysql_query("INSERT INTO [omnilog]
VALUES(NOW(),'{$_COOKIE['login']}',
'{$_SERVER['REMOTE_ADDR']}','$forwardedFor',
'{$_SERVER['PHP_SELF']}','$postVars','$getVars')");
`
Tracks all user actions (POST/GET data, IPs, forwarded headers) - GDPR nightmare!
5. IP-BASED BANNING
`php
// _include-config.php
$dbres = mysql_query("SELECT id FROM [users]
WHERE IP='$clientIP' AND level<='-50'");
`
IP bans easily bypassed (VPN, mobile networks).
6. WEAK SESSION MANAGEMENT
`php
// Cookie-based auth (no httponly, no secure flags)
setcookie("login",$data->login,time()+606024,"/",
"http://www.northern-maffia.com/");
`
Vulnerable to:
7. EMAIL IN CODE
`php
// login.php line 59
mail($data->email,"Northern-maffia","...",
"From: worldcrime crew
`
Hardcoded email references (worldcrime.nl, northern-maffia.com inconsistency).
8. IP MULTI-ACCOUNT CHECK
`php
// register.php line 45
$dbres = mysql_query("SELECT id FROM [users]
WHERE ip='$IP' AND ip!='84.81.71.218' AND health!='0'");
`
Whitelisted IP: 84.81.71.218 (developer's IP?) can create unlimited accounts!
---
STRENGTHS:
1. Global Sanitization
`php
// _include-config.php - loops through all inputs
foreach($_POST as $key => $value) {
$_POST[$key] = addslashes($_POST[$key]);
}
`
Better than nothing! (Though inconsistent usage elsewhere)
2. Function Library
`php
// _include-funcs.php
// quote_smart(), check_login(), etc.
`
3. OmniLog Audit Trail
`php
// Every action logged (POST/GET/IP)
// Good for debugging, terrible for privacy
`
4. Modular Structure
WEAKNESSES:
1. MASSIVE FILES
`
snews.php - 1,031 lines (news system)
orgcrime.php - 795 lines (organized crime)
zoek.php - 618 lines (search)
racetrack.php - 567 lines (racing)
shop1.php - 517 lines (shop)
`
2. DUTCH/ENGLISH MIX
`php
// Variable names
$wachtwoord // Dutch: password
$gevangenis // Dutch: prison
$familie // Dutch: family
$baas // Dutch: boss
`
Confusing for international developers!
3. NO COMMENTS
4. INLINE HTML
`php
print <<
| ... |
ENDHTML;
`
No template engine (HTML/PHP spaghetti).
5. INCONSISTENT NAMING
`
crew-forum.php // Hyphenated
crewbank.php // No hyphen
fambank.php // Different prefix
`
6. FILE ORGANIZATION CHAOS
7. DUPLICATE CODE
`
shop.php vs shop1.php
admin.php, admin2.php, admin3.php
message.php, playermess.php, playermessa.php
`
8. DEPRECATED PHP
`php
mysql_connect() // Deprecated PHP 5.5
mysql_query() // Removed PHP 7.0
ereg() // Removed PHP 7.0 (if used)
`
---
[users] Table (Massive!):
`sql
id, login, pass (PLAINTEXT!), email, activated,
level, money, bank, bullets, health, maxhealth,
respect, rank, power, defense, speed,
kills, deaths, location, IP, signup,
online, familie (family ID), type,
getuige (witness count), handdruk (handshake/alliances),
honourpoints, donator
`
[families] Table:
`sql
id, name, boss (leader), motto, respect,
money, bank, level, wins, losses,
members, maxmembers, garage (cars)
`
[buildings] Table:
`sql
type (bulletfactory/roulette/slot/trainstation),
city (12 US states), owner, start, price,
production, profit, active, amount
`
[orgcrime] Table:
`sql
id, leader, member1-4, type, status,
money, bullets, cars, weapons, success
`
[omnilog] Table (Privacy Nightmare!):
`sql
time, login, IP, forwardedFor, page,
postVars (serialized POST data!),
getVars (serialized GET data!)
`
Logs EVERYTHING users do!
[handdruk] Table (Unique Feature!):
`sql
user1, user2, status, timestamp
`
"Handshake" = Alliance/treaty system (unique mechanic!)
---
Context:
Northern Mafia is part of Dutch gaming wave (2004-2008):
Dutch Games Discovered:
Why So Many Dutch Games?
Northern Mafia Characteristics:
Unique Features:
Technology Stack (2005):
Why It Failed:
---
Server:
Installation:
Configuration:
`php
// _include-config.php
$sitelink = "http://www.undernation.com/nm";
mysql_connect("localhost","waushare_unation","un123")
mysql_select_db("waushare_unation")
`
Blockers:
Would require complete rewrite: 300+ hours
---
What's Present:
What's Missing:
Playability:
`
PHP 5.6: ⚠️ YES (works but INSECURE!)
PHP 7.0+: NO (mysql_* removed)
Security: CATASTROPHIC (plaintext passwords!)
`
Historical Significance:
Comparative Rarity:
In Wild:
---
RATING BREAKDOWN:
| Category | Score | Reasoning |
|---|---|---|
| Security | 2/10 | Plaintext passwords, OmniLog privacy violations |
| Code Quality | 4/10 | Messy, Dutch/English mix, no templates |
| Completeness | 8/10 | Full features, 186 files, 2,215-line SQL |
| Innovation | 6/10 | Handshake system, witness mechanic, multi-groups |
| Playability | 2/10 | Works PHP 5.6 but catastrophically insecure |
| Historical Impact | 1/10 | Never launched, zero impact |
| Preservation Value | 6/10 | Unique systems, Dutch gaming artifact |
1. Unique Mechanics
2. Large Codebase
3. OmniLog Audit System
4. Dutch Cultural Artifact
1. PLAINTEXT PASSWORDS
`php
// NO HASHING ANYWHERE!
WHERE login='{$_POST['login']}'
AND pass='{$_POST['pass']}'
`
Worst security flaw possible!
2. Privacy Violations
`php
// OmniLog tracks EVERYTHING
// POST data, GET data, IPs, forwarded headers
// GDPR nightmare!
`
3. Code Quality Issues
4. Never Launched
5. PHP 4.3 Maximum
Reasons:
Who Should Study:
Teaching Points:
The Northern Mafia Story:
2005: Unknown Dutch developer creates game
September 1, 2005: Database dump created (last activity?)
2005: Project abandoned
2005-2025: Lost to history
The Lesson: Innovation without security = failure
Northern Mafia had unique features (handshake alliances, witness system, kidnapping, building ownership) but catastrophic security prevented launch. Plaintext passwords were unacceptable even in 2005.
Meanwhile, Barafranca (Dutch, 2003) with basic security survived 22 years because it launched and built community.
In Collection (Games 1-48):
Comparison:
Justification:
Archive Value: Educational (privacy/security case studies)
---
Archive Status: PRESERVED (Dutch Gaming Artifact)
Analysis Date: December 11, 2025
Game Number: 48 of 79
Analyst Notes: "Northern Maffia" (Dutch spelling). Folder typo: "nothern_mafia" (missing 'r'). Catastrophic security (plaintext passwords, 2/10). Large codebase (186 PHP files, 24,740 lines, 2,215-line SQL!). Unique features: handshake alliance system ([handdruk] table), witness system ([getuige]), kidnapping (gijzelen.php - 350 lines), building ownership (12 US cities), multi-tier groups (families/crews/clans). OmniLog privacy nightmare - tracks all POST/GET/IP data. All-Dutch interface (login/wachtwoord/familie/baas/gevangenis). Never launched (only sample data: user "nicoow"). PHP 4.3.11, MySQL 4.0.23 (September 1, 2005). Domains dead (northern-maffia.com, worldcrime.nl). Developer: Balis Hans, Mr.X (from Comments.txt). Worth preserving for unique mechanics and privacy anti-patterns, but zero historical impact (never released). Messy code (Dutch/English mix, 1,031-line files, no comments). Part of Dutch gaming wave 2005-2008 but failed where Barafranca succeeded.
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.