diff --git a/Distribution/Configuration/antimacro.json b/Distribution/Configuration/antimacro.json
new file mode 100644
index 000000000..082137204
--- /dev/null
+++ b/Distribution/Configuration/antimacro.json
@@ -0,0 +1,66 @@
+{
+ "Allowance": 3,
+ "LocationSize": 5,
+ "Enabled": false,
+ "Expire": "00:05:00",
+ "SkillsThatUseAntiMacro": {
+ "Alchemy": false,
+ "Anatomy": true,
+ "AnimalLore": true,
+ "ItemID": true,
+ "ArmsLore": true,
+ "Parry": false,
+ "Begging": true,
+ "Blacksmith": false,
+ "Fletching": false,
+ "Peacemaking": true,
+ "Camping": true,
+ "Carpentry": false,
+ "Cartography": false,
+ "Cooking": false,
+ "DetectHidden": true,
+ "Discordance": true,
+ "EvalInt": true,
+ "Healing": true,
+ "Fishing": true,
+ "Forensics": true,
+ "Herding": true,
+ "Hiding": true,
+ "Provocation": true,
+ "Inscribe": false,
+ "Lockpicking": true,
+ "Magery": true,
+ "MagicResist": true,
+ "Tactics": false,
+ "Snooping": true,
+ "Musicianship": true,
+ "Poisoning": true,
+ "Archery": false,
+ "SpiritSpeak": true,
+ "Stealing": true,
+ "Tailoring": false,
+ "AnimalTaming": true,
+ "TasteID": true,
+ "Tinkering": false,
+ "Tracking": true,
+ "Veterinary": true,
+ "Swords": false,
+ "Macing": false,
+ "Fencing": false,
+ "Wrestling": false,
+ "Lumberjacking": true,
+ "Mining": true,
+ "Meditation": true,
+ "Stealth": true,
+ "RemoveTrap": true,
+ "Necromancy": true,
+ "Focus": false,
+ "Chivalry": true,
+ "Bushido": true,
+ "Ninjitsu": true,
+ "Spellweaving": true,
+ "Mysticism": true,
+ "Imbuing": true,
+ "Throwing": false
+ }
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/assistants.json b/Distribution/Configuration/assistants.json
new file mode 100644
index 000000000..689864309
--- /dev/null
+++ b/Distribution/Configuration/assistants.json
@@ -0,0 +1,33 @@
+{
+ "warnOnFailure": true,
+ "kickOnFailure": true,
+ "disallowedFeatures": {
+ "FilterWeather": false,
+ "FilterLight": false,
+ "SmartTarget": false,
+ "RangedTarget": false,
+ "AutoOpenDoors": false,
+ "DequipOnCast": false,
+ "AutoPotionEquip": false,
+ "PoisonedChecks": false,
+ "LoopedMacros": false,
+ "UseOnceAgent": false,
+ "RestockAgent": false,
+ "SellAgent": false,
+ "BuyAgent": false,
+ "PotionHotkeys": false,
+ "RandomTargets": false,
+ "ClosestTargets": false,
+ "OverheadHealth": false,
+ "AutolootAgent": false,
+ "BoneCutterAgent": false,
+ "JScriptMacros": false,
+ "AutoRemount": false,
+ "AutoBandage": false,
+ "EnemyTargetShare": false,
+ "FilterSeason": false,
+ "SpellTargetShare": false
+ },
+ "disconnectDelay": "00:00:15",
+ "warningMessage": "The server was unable to negotiate features with your assistant. You must download and run an updated version of UOSteam or Razor.
Make sure you've checked the option Negotiate features with server, once you have this box checked you may log in and play normally.
You will be disconnected shortly."
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/auto-denylist.json b/Distribution/Configuration/auto-denylist.json
new file mode 100644
index 000000000..9ba21f04a
--- /dev/null
+++ b/Distribution/Configuration/auto-denylist.json
@@ -0,0 +1,5 @@
+{
+ "enabled": true,
+ "duration": "00:15:00",
+ "maxEntries": 324449
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/bans.json b/Distribution/Configuration/bans.json
new file mode 100644
index 000000000..ec0c1c330
--- /dev/null
+++ b/Distribution/Configuration/bans.json
@@ -0,0 +1,6 @@
+{
+ "reportRateLimitTrips": true,
+ "autoBanDuration": "04:00:00",
+ "reportBadConnects": true,
+ "badConnectDuration": "04:00:00"
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/blocklist.json b/Distribution/Configuration/blocklist.json
new file mode 100644
index 000000000..fdb20c0a5
--- /dev/null
+++ b/Distribution/Configuration/blocklist.json
@@ -0,0 +1,8 @@
+{
+ "enabled": false,
+ "file": "Configuration/ip-blocklist.txt",
+ "reloadInterval": "00:01:00",
+ "reportHits": true,
+ "banDuration": "06:00:00",
+ "promoteSuppression": "00:01:00"
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/crowdsec.json b/Distribution/Configuration/crowdsec.json
new file mode 100644
index 000000000..e0a77fe6d
--- /dev/null
+++ b/Distribution/Configuration/crowdsec.json
@@ -0,0 +1,9 @@
+{
+ "lapiUrl": "http://127.0.0.1:8080",
+ "machineId": "",
+ "password": "",
+ "origin": "modernuo",
+ "manualBanDuration": "7.00:00:00",
+ "flushInterval": "00:00:01",
+ "maxQueue": 10000
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/email-settings.json b/Distribution/Configuration/email-settings.json
new file mode 100644
index 000000000..ee04379aa
--- /dev/null
+++ b/Distribution/Configuration/email-settings.json
@@ -0,0 +1,15 @@
+{
+ "enabled": false,
+ "fromAddress": "support@modernuo.com",
+ "fromName": "ModernUO Team",
+ "crashAddress": "crashes@modernuo.com",
+ "crashName": "Crash Log",
+ "speechLogPageAddress": "support@modernuo.com",
+ "speechLogPageName": "GM Support Conversation",
+ "emailServer": "smtp.gmail.com",
+ "emailPort": 465,
+ "emailUsername": "support@modernuo.com",
+ "emailPassword": "Some Password 123",
+ "emailSendRetryCount": 5,
+ "emailSendRetryDelay": 3
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/expansion.json b/Distribution/Configuration/expansion.json
new file mode 100644
index 000000000..4ddbdb733
--- /dev/null
+++ b/Distribution/Configuration/expansion.json
@@ -0,0 +1,79 @@
+{
+ "Id": 5,
+ "Name": "Age of Shadows",
+ "ClientFlags": "Malas",
+ "SupportedFeatures": {
+ "ExpansionT2A": true,
+ "T2A": true,
+ "UOR": true,
+ "UOTD": false,
+ "LBR": true,
+ "AOS": true,
+ "SixthCharacterSlot": false,
+ "SE": false,
+ "ML": false,
+ "EighthAge": false,
+ "NinthAge": false,
+ "TenthAge": false,
+ "IncreasedStorage": false,
+ "SeventhCharacterSlot": false,
+ "RoleplayFaces": false,
+ "TrialAccount": false,
+ "LiveAccount": true,
+ "SA": false,
+ "HS": false,
+ "Gothic": false,
+ "Rustic": false,
+ "Jungle": false,
+ "Shadowguard": false,
+ "TOL": false,
+ "EJ": false
+ },
+ "CharacterListFlags": {
+ "Unk1": false,
+ "OverwriteConfigButton": false,
+ "OneCharacterSlot": false,
+ "ExpansionNone": true,
+ "ExpansionUOTD": true,
+ "ExpansionLBR": true,
+ "ExpansionT2A": true,
+ "ExpansionUOR": true,
+ "ContextMenus": true,
+ "SlotLimit": false,
+ "AOS": true,
+ "SixthCharacterSlot": false,
+ "SE": false,
+ "ML": false,
+ "KR": false,
+ "UO3DClientType": false,
+ "Unk3": false,
+ "SeventhCharacterSlot": false,
+ "Unk4": false,
+ "NewMovementSystem": false,
+ "NewFeluccaAreas": false
+ },
+ "HousingFlags": {
+ "AOS": true,
+ "HousingAOS": true,
+ "SE": false,
+ "ML": false,
+ "Crystal": false,
+ "SA": false,
+ "HS": false,
+ "Gothic": false,
+ "Rustic": false,
+ "Jungle": false,
+ "Shadowguard": false,
+ "TOL": false,
+ "EJ": false
+ },
+ "MobileStatusVersion": 6,
+ "MapSelectionFlags": {
+ "Felucca": true,
+ "Trammel": true,
+ "Ilshenar": true,
+ "Malas": true,
+ "Tokuno": false,
+ "TerMur": false
+ }
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/firewall.json b/Distribution/Configuration/firewall.json
new file mode 100644
index 000000000..c43cb320f
--- /dev/null
+++ b/Distribution/Configuration/firewall.json
@@ -0,0 +1,3 @@
+{
+ "entries": []
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/ip-allowlist.json b/Distribution/Configuration/ip-allowlist.json
new file mode 100644
index 000000000..b588dbca1
--- /dev/null
+++ b/Distribution/Configuration/ip-allowlist.json
@@ -0,0 +1,7 @@
+{
+ "enabled": false,
+ "files": [
+ "Configuration/ip-allowlist*.txt"
+ ],
+ "reloadInterval": "00:01:00"
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/login-allowlist.json b/Distribution/Configuration/login-allowlist.json
new file mode 100644
index 000000000..be8521524
--- /dev/null
+++ b/Distribution/Configuration/login-allowlist.json
@@ -0,0 +1,8 @@
+{
+ "enabled": true,
+ "file": "Configuration/login-allowlist.txt",
+ "ttl": "90.00:00:00",
+ "flushInterval": "01:00:00",
+ "escalateAfterStrikes": 10,
+ "strikeWindow": "01:00:00"
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/modernuo.json b/Distribution/Configuration/modernuo.json
new file mode 100644
index 000000000..ef7588a1c
--- /dev/null
+++ b/Distribution/Configuration/modernuo.json
@@ -0,0 +1,100 @@
+{
+ "assemblyDirectories": [
+ "./Assemblies"
+ ],
+ "dataDirectories": [
+ "Data/Files"
+ ],
+ "listeners": [
+ "0.0.0.0:2593"
+ ],
+ "settings": {
+ "accountHandler.enableAutoAccountCreation": "True",
+ "accountHandler.enablePlayerPasswordCommand": "False",
+ "accountHandler.maxAccountsPerIP": "1",
+ "accountSecurity.encryptionAlgorithm": "Argon2",
+ "assistants.enableNegotiation": "False",
+ "autoArchive.archiveLocally": "True",
+ "autoArchive.archivePath": "Archives",
+ "autoArchive.backupMaxAge": "30",
+ "autoArchive.backupPath": "Backups",
+ "autoArchive.compressionLevel": "3",
+ "autoArchive.dailyRetention": "30",
+ "autoArchive.enableArchivePruning": "True",
+ "autoArchive.hourlyRetention": "24",
+ "autoArchive.monthlyRetention": "12",
+ "autoArchive.retryCount": "3",
+ "autoArchive.retryDelayMs": "500",
+ "autoArchive.verifyArchives": "True",
+ "autosave.enabled": "True",
+ "autosave.saveDelay": "00:05:00",
+ "autosave.warningDelay": "00:00:00",
+ "buffIcons.enable": "False",
+ "bulletinboards.creationTimeDelay": "00:02:00",
+ "bulletinboards.expireDuration": "06:00:00",
+ "bulletinboards.replyDelay": "00:00:30",
+ "chat.enabled": "False",
+ "clientVerification.ageLeniency": "10.00:00:00",
+ "clientVerification.enable": "True",
+ "clientVerification.gameTimeLeniency": "1.01:00:00",
+ "clientVerification.invalidClientResponse": "Kick",
+ "clientVerification.kickDelay": "00:00:20",
+ "commandsystem.prefix": "[",
+ "crashGuard.enabled": "True",
+ "crashGuard.generateReport": "True",
+ "crashGuard.restartServer": "True",
+ "crashGuard.saveBackup": "True",
+ "ethics.enable": "False",
+ "houseDecay.enable": "True",
+ "movement.delay.runFoot": "200",
+ "movement.delay.runMount": "100",
+ "movement.delay.turn": "0",
+ "movement.delay.walkFoot": "400",
+ "movement.delay.walkMount": "200",
+ "movementThrottle.debugLogging": "False",
+ "movementThrottle.definiteRateThreshold": "1.100000023841858",
+ "movementThrottle.hardQueueLimit": "10",
+ "movementThrottle.maxCredit": "200",
+ "movementThrottle.minSamplesForRate": "8",
+ "movementThrottle.movementHistorySize": "20",
+ "movementThrottle.suspiciousRateThreshold": "1.0499999523162842",
+ "murderSystem.bountiesEnabled": "False",
+ "murderSystem.bountyExpiry": "14.00:00:00",
+ "murderSystem.longTermMurderDuration": "1.16:00:00",
+ "murderSystem.recentlyReportedDelay": "00:10:00",
+ "murderSystem.shortTermMurderDuration": "08:00:00",
+ "network.maxOutstandingSends": "32",
+ "network.sendBufferSize": "262144",
+ "pages.discordWebhookUrl": null,
+ "pathfinding.enable": "True",
+ "pathfinding.maxResidentChunks": "8192",
+ "pathfinding.maxSearchNodes": "1000",
+ "pathfinding.prebakeMaps": "False",
+ "pathfinding.recorder.enable": "False",
+ "pathfinding.recorder.path": "/mnt/fileStorage/Projects/ModernUO/Server/Distribution/Data/Pathfinding/recordings/pathfinds.jsonl",
+ "pingServer.enabled": "True",
+ "questSystem.enableMLQuests": "False",
+ "serverListing.address": null,
+ "serverListing.autoDetect": "True",
+ "serverListing.serverName": "ModernUO",
+ "stamina.additionalLossWhenBelow": "0.1",
+ "stamina.baseOverweightLoss": "5",
+ "stamina.cannotRunWhenFatigued": "False",
+ "stamina.cannotWalkWhenFatigued": "False",
+ "stamina.enableMountStamina": "True",
+ "stamina.stonesOverweightAllowance": "4",
+ "stamina.stonesPerOverweightLoss": "25",
+ "stats.gainChanceMultiplier": "1",
+ "stats.statMax": "125",
+ "testCenter.enable": "False",
+ "timer.initialPoolCapacity": "1024",
+ "timer.maxPoolCapacity": "16384",
+ "uogateway.enabled": "True",
+ "vetRewards.enable": "True",
+ "vetRewards.rewardInterval": "30.00:00:00",
+ "vetRewards.skillCapRewards": "True",
+ "world.enableAutoRestart": "False",
+ "world.savePath": "Saves",
+ "world.useMultithreadedSaves": "True"
+ }
+}
\ No newline at end of file
diff --git a/Distribution/Configuration/throttles.json b/Distribution/Configuration/throttles.json
new file mode 100644
index 000000000..ee8fa7be3
--- /dev/null
+++ b/Distribution/Configuration/throttles.json
@@ -0,0 +1,6 @@
+{
+ "0x03": 25,
+ "0x12": 25,
+ "0x75": 500,
+ "0xAD": 25
+}
\ No newline at end of file