From 5d67792ee1e2fb5928a353d7ca3c40535f90b93c Mon Sep 17 00:00:00 2001 From: WarrentyExpired Date: Fri, 28 Aug 2026 20:03:10 -0400 Subject: [PATCH] #W# Added server config files. --- Distribution/Configuration/antimacro.json | 66 ++++++++++++ Distribution/Configuration/assistants.json | 33 ++++++ Distribution/Configuration/auto-denylist.json | 5 + Distribution/Configuration/bans.json | 6 ++ Distribution/Configuration/blocklist.json | 8 ++ Distribution/Configuration/crowdsec.json | 9 ++ .../Configuration/email-settings.json | 15 +++ Distribution/Configuration/expansion.json | 79 ++++++++++++++ Distribution/Configuration/firewall.json | 3 + Distribution/Configuration/ip-allowlist.json | 7 ++ .../Configuration/login-allowlist.json | 8 ++ Distribution/Configuration/modernuo.json | 100 ++++++++++++++++++ Distribution/Configuration/throttles.json | 6 ++ 13 files changed, 345 insertions(+) create mode 100644 Distribution/Configuration/antimacro.json create mode 100644 Distribution/Configuration/assistants.json create mode 100644 Distribution/Configuration/auto-denylist.json create mode 100644 Distribution/Configuration/bans.json create mode 100644 Distribution/Configuration/blocklist.json create mode 100644 Distribution/Configuration/crowdsec.json create mode 100644 Distribution/Configuration/email-settings.json create mode 100644 Distribution/Configuration/expansion.json create mode 100644 Distribution/Configuration/firewall.json create mode 100644 Distribution/Configuration/ip-allowlist.json create mode 100644 Distribution/Configuration/login-allowlist.json create mode 100644 Distribution/Configuration/modernuo.json create mode 100644 Distribution/Configuration/throttles.json 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