{
  "panel": {
    "console": {
      "send": "socket",
      "regex": "\\w+ \\d+ (\\d+:\\d+:\\d+) \\[\\d+:\\d+:\\d+\\] (.*)",
      "levels": {
        "map": [
          {
            "name": "Info",
            "match": "(.*)",
            "type": "regex",
            "colour": "white"
          }
        ],
        "replace": false
      },
      "map": {
        "timestamp": 1,
        "level": 2,
        "message": 2
      }
    },
    "connectPort": "network/GameServerPort"
  },
  "files": [
    {
      "name": "backup",
      "path": "eco/Configs/Backup.eco",
      "handler": "json"
    },
    {
      "name": "balance",
      "path": "eco/Configs/Balance.eco",
      "handler": "json"
    },
    {
      "name": "civics",
      "path": "eco/Configs/Civics.eco",
      "handler": "json"
    },
    {
      "name": "disasters",
      "path": "eco/Configs/Disasters.eco",
      "handler": "json"
    },
    {
      "name": "features",
      "path": "eco/Configs/Features.eco",
      "handler": "json"
    },
    {
      "name": "localization",
      "path": "eco/Configs/Localization.eco",
      "handler": "json"
    },
    {
      "name": "maintenance",
      "path": "eco/Configs/Maintenance.eco",
      "handler": "json"
    },
    {
      "name": "modkit",
      "path": "eco/Configs/ModKit.eco",
      "handler": "json"
    },
    {
      "name": "network",
      "path": "eco/Configs/Network.eco",
      "handler": "json"
    },
    {
      "name": "pause",
      "path": "eco/Configs/Pause.eco",
      "handler": "json"
    },
    {
      "name": "rooms",
      "path": "eco/Configs/Rooms.eco",
      "handler": "json"
    },
    {
      "name": "sleep",
      "path": "eco/Configs/Sleep.eco",
      "handler": "json"
    },
    {
      "name": "stats",
      "path": "eco/Configs/Stats.eco",
      "handler": "json"
    },
    {
      "name": "storage",
      "path": "eco/Configs/Storage.eco",
      "handler": "json"
    },
    {
      "name": "world",
      "path": "eco/Configs/World.eco",
      "handler": "json"
    },
    {
      "name": "worldobjects",
      "path": "eco/Configs/WorldObjects.eco",
      "handler": "json"
    }
  ],
  "categories": [
    {
      "title": "Backup",
      "name": "backup"
    },
    {
      "title": "Balance",
      "name": "balance"
    },
    {
      "title": "Civics",
      "name": "civics"
    },
    {
      "title": "Disasters",
      "name": "disasters"
    },
    {
      "title": "Features",
      "name": "features"
    },
    {
      "title": "Localization",
      "name": "localization"
    },
    {
      "title": "Maintenance",
      "name": "maintenance"
    },
    {
      "title": "ModKit",
      "name": "modkit"
    },
    {
      "title": "Network",
      "name": "network"
    },
    {
      "title": "Pause",
      "name": "pause"
    },
    {
      "title": "Rooms",
      "name": "rooms"
    },
    {
      "title": "Sleep",
      "name": "sleep"
    },
    {
      "title": "Stats",
      "name": "stats"
    },
    {
      "title": "Storage",
      "name": "storage"
    },
    {
      "title": "World",
      "name": "world"
    },
    {
      "title": "WorldObjects",
      "name": "worldobjects"
    }
  ],
  "properties": {
    "Enabled": {
      "default": true,
      "description": "Allow for automatic backups to be created.",
      "format": "dropdown",
      "title": "Enable Backups",
      "type": "boolean",
      "category": "backup",
      "file": "backup"
    },
    "MaxBackupsInLastHour": {
      "default": 2,
      "title": "Max Backups In Last Hour",
      "type": "number",
      "category": "backup",
      "file": "backup"
    },
    "MaxHourlyBackups": {
      "default": 24,
      "title": "Max Hourly Backups",
      "type": "number",
      "category": "backup",
      "file": "backup"
    },
    "MaxDailyBackups": {
      "default": 3,
      "title": "Max Daily Backups",
      "type": "number",
      "category": "backup",
      "file": "backup"
    },
    "MaxWeeklyBackups": {
      "default": 10,
      "title": "Max Weekly Backups",
      "type": "number",
      "category": "backup",
      "file": "backup"
    },
    "BackupFrequencyInHours": {
      "default": 0.5,
      "title": "Backup Frequency In Hours",
      "type": "number",
      "category": "backup",
      "file": "backup"
    },
    "HeadBackupEnabled": {
      "default": true,
      "format": "dropdown",
      "title": "Head Backup Enabled",
      "type": "boolean",
      "category": "backup",
      "file": "backup"
    },

    "MaxActivePlayers": {
      "default": 0,
      "title": "Maximum number of active players",
      "type": "number",
      "category": "balance",
      "file": "balance"
    },
    "ExhaustionAfterHours": {
      "default": 0,
      "title": "Exhaustion After Hours",
      "type": "number",
      "category": "balance",
      "file": "balance"
    },

    "AllowOverthrow": {
      "default": true,
      "format": "dropdown",
      "title": "Allow Overthrow",
      "type": "boolean",
      "category": "civics",
      "file": "civics"
    },
    "ValueAdditionToOverthrow": {
      "default": 50.0,
      "title": "Value Addition To Overthrow",
      "type": "number",
      "category": "civics",
      "file": "civics"
    },
    "DayRangeForActiveDemographic": {
      "default": 1.5,
      "title": "Day Range For Active Demographic",
      "type": "number",
      "category": "civics",
      "file": "civics"
    },
    "HoursPlayedToBeActiveDemographic": {
      "default": 0.5,
      "title": "Hours Played To Be Active Demographic",
      "type": "number",
      "category": "civics",
      "file": "civics"
    },
    "DayRangeForAbandonedDemographic": {
      "default": 7.0,
      "title": "Day Range For Abandoned Demographic",
      "type": "number",
      "category": "civics",
      "file": "civics"
    },
    "HoursPlayedToBeAbandonedDemographic": {
      "default": 0.0,
      "title": "Hours Played To Be Abandoned Demographic",
      "type": "number",
      "category": "civics",
      "file": "civics"
    },
    "CitizenAgeForAbandonedDemographic": {
      "default": 24.0,
      "title": "Citizen Age For Abandoned Demographic",
      "type": "number",
      "category": "civics",
      "file": "civics"
    },
    "MinutesBetweenCivicsUpdates": {
      "default": 5.0,
      "title": "Minutes Between Civics Updates",
      "type": "number",
      "category": "civics",
      "file": "civics"
    },
    "AllowInvalidCivicContainerTimeInMinutes": {
      "default": 20.0,
      "title": "Allow Invalid Civic Container Time In Minutes",
      "type": "number",
      "category": "civics",
      "file": "civics"
    },
    "RecurringTransferFrequency": {
      "default": 30.0,
      "title": "Recurring Transfer Frequency",
      "type": "number",
      "category": "civics",
      "file": "civics"
    },
    "AllowLawsToPreventLoginOrPlay": {
      "default": false,
      "format": "dropdown",
      "title": "Allow Laws To Prevent Login Or Play",
      "type": "boolean",
      "category": "civics",
      "file": "civics"
    },

    "CreateMeteor": {
      "default": true,
      "format": "dropdown",
      "title": "Create Meteor",
      "description": "Defines if there is a meteor or not.",
      "type": "boolean",
      "category": "disasters",
      "file": "disasters"
    },
    "MeteorImpactDays": {
      "default": 30.0,
      "title": "Meteor Impact Days",
      "description": "Number of days before meteor impact (in real time).",
      "type": "number",
      "category": "disasters",
      "file": "disasters"
    },

    "RentEnabled": {
      "default": true,
      "format": "dropdown",
      "title": "Enable Rent",
      "type": "boolean",
      "category": "features",
      "file": "features"
    },
    "FoodVarietyMultiplierEnabled": {
      "default": true,
      "format": "dropdown",
      "title": "Food Variety Multiplier Enabled",
      "type": "boolean",
      "category": "features",
      "file": "features"
    },
    "FoodTastinessMultiplierEnabled": {
      "default": true,
      "format": "dropdown",
      "title": "Food Tastiness Multiplier Enabled",
      "type": "boolean",
      "category": "features",
      "file": "features"
    },

    "Language": {
      "default": "English",
      "title": "Language",
      "type": "string",
      "category": "localization",
      "file": "localization"
    },

    "AutoShutdownHour": {
      "default": -1,
      "title": "Auto Shutdown Hour",
      "type": "number",
      "category": "maintenance",
      "file": "maintenance"
    },
    "AutoShutdownReason": {
      "default": "Automatic Restart",
      "title": "Auto Shutdown Reason",
      "type": "string",
      "category": "maintenance",
      "file": "maintenance"
    },
    "CountdownStart": {
      "default": 30,
      "title": "Countdown Start",
      "type": "number",
      "category": "maintenance",
      "file": "maintenance"
    },

    "WhitelistEnabled": {
      "default": false,
      "format": "dropdown",
      "title": "Whitelist Enabled",
      "description": "Whether to use a whitelist to select mods to load. If disabled, all listed mods will be loaded",
      "type": "boolean",
      "category": "modkit",
      "file": "modkit"
    },
    "LiveUpdateUnityFiles": {
      "default": false,
      "format": "dropdown",
      "title": "Live Update Unity Files",
      "description": "Whether to check for unity file updates continuously, e.g. when switching mods around for testing.",
      "type": "boolean",
      "category": "modkit",
      "file": "modkit"
    },
    "PreserveGeneratedModsAssembly": {
      "default": false,
      "format": "dropdown",
      "title": "Preserve Generated Mods Assembly",
      "description": "Controls if the Eco.Mods.dll assembly is saved on server start",
      "type": "boolean",
      "category": "modkit",
      "file": "modkit"
    },

    "PublicServer": {
      "default": false,
      "format": "dropdown",
      "title": "PublicServer",
      "type": "boolean",
      "category": "network",
      "file": "network"
    },
    "Playtime": {
      "default": "",
      "title": "Playtime",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "Password": {
      "default": "",
      "title": "Password",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "DiscordAddress": {
      "default": "",
      "title": "Discord Address",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "Description": {
      "default": "A CreeperHost server",
      "title": "Description",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "DetailedDescription": {
      "default": "",
      "title": "Detailed Description",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "ServerCategory": {
      "default": "None",
      "title": "Server Category",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "IPAddress": {
      "default": "Any",
      "title": "IPAddress",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "WebServerUrl": {
      "default": "",
      "title": "Web Server Url",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "RemoteAddress": {
      "default": "",
      "title": "Remote Address",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "GameServerPort": {
      "default": 3000,
      "title": "Game Server Port",
      "type": "number",
      "category": "network",
      "file": "network"
    },
    "WebServerPort": {
      "default": 3001,
      "title": "Web Server Port",
      "type": "number",
      "category": "network",
      "file": "network"
    },
    "RconServerPort": {
      "default": 3002,
      "title": "RCON Server Port",
      "type": "number",
      "category": "network",
      "file": "network"
    },
    "RconIPAddress": {
      "default": "Any",
      "title": "Rcon IP Address",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "RconPassword": {
      "default": "",
      "title": "Rcon Password",
      "type": "string",
      "category": "network",
      "file": "network"
    },
    "Rate": {
      "default": 20,
      "title": "Rate",
      "type": "number",
      "category": "network",
      "file": "network"
    },
    "MaxConnections": {
      "default": -1,
      "title": "Max Connections",
      "type": "number",
      "category": "network",
      "file": "network"
    },
    "UPnPEnabled": {
      "default": true,
      "format": "dropdown",
      "title": "UPnPEnabled",
      "type": "boolean",
      "category": "network",
      "file": "network"
    },
    "RelayServerAddress": {
      "default": "",
      "title": "Relay Server Address",
      "type": "string",
      "category": "network",
      "file": "network"
    },

    "Paused": {
      "default": false,
      "format": "dropdown",
      "title": "Paused",
      "type": "boolean",
      "category": "pause",
      "file": "pause"
    },
    "UnpauseAtFirstLogin": {
      "default": true,
      "format": "dropdown",
      "title": "Unpause At First Login",
      "type": "boolean",
      "category": "pause",
      "file": "pause"
    },

    "EmptyBlocksCountAsWindows": {
      "default": true,
      "format": "dropdown",
      "title": "Empty blocks count as windows",
      "type": "boolean",
      "category": "rooms",
      "file": "rooms"
    },
    "RoomCategoryDiminishingReturnRate": {
      "default": 0.5,
      "title": "Room Category Diminishing Return Rate",
      "type": "number",
      "category": "rooms",
      "file": "rooms"
    },
    "WallBlocksPerWindow": {
      "default": 10,
      "title": "Wall blocks per window",
      "type": "number",
      "category": "rooms",
      "file": "rooms"
    },

    "AllowFastForward": {
      "default": false,
      "format": "dropdown",
      "title": "Allow fast forward",
      "type": "boolean",
      "category": "sleep",
      "file": "sleep"
    },
    "SleepTimePassMultiplier": {
      "default": 500.0,
      "title": "Sleep time pass multiplier",
      "type": "number",
      "category": "sleep",
      "file": "sleep"
    },
    "TimeToReachMaximumTimeRate": {
      "default": 20.0,
      "title": "Time to reach maximum time rate",
      "type": "number",
      "category": "sleep",
      "file": "sleep"
    },

    "EnableStatWrites": {
      "default": true,
      "format": "dropdown",
      "title": "Enable stat writes",
      "type": "boolean",
      "category": "stats",
      "file": "stats"
    },
    "EnableStatReads": {
      "default": true,
      "format": "dropdown",
      "title": "Enable Stat Reads",
      "type": "boolean",
      "category": "stats",
      "file": "stats"
    },
    "EnablePendingWritesOnBackup": {
      "default": true,
      "format": "dropdown",
      "title": "Enable Pending Writes On Backup",
      "type": "boolean",
      "category": "stats",
      "file": "stats"
    },
    "WriteTimeoutMS": {
      "default": 1000,
      "title": "Write Timeout in MS",
      "type": "number",
      "category": "stats",
      "file": "stats"
    },
    "ReadTimeoutMS": {
      "default": 1000,
      "title": "Read Timeout in MS",
      "type": "number",
      "category": "stats",
      "file": "stats"
    },
    "StorageDirectory": {
      "default": "Storage",
      "title": "Storage Directory",
      "type": "string",
      "category": "stats",
      "file": "stats"
    },
    "MaxRecordsToGroup": {
      "default": 500000,
      "title": "Max Records To Group",
      "type": "number",
      "category": "stats",
      "file": "stats"
    },
    "KeepDetailsHours": {
      "default": 3,
      "title": "Keep Details Hours",
      "type": "number",
      "category": "stats",
      "file": "stats"
    },
    "RebuildDatabaseOnExit": {
      "default": true,
      "format":"dropdown",
      "title": "Rebuild Database On Exit",
      "type": "boolean",
      "category": "stats",
      "file": "stats"
    },
    "GroupingLevel": {
      "default": "GroupByEssentialFields",
      "title": "Grouping Level",
      "type": "string",
      "category": "stats",
      "file": "stats"
    },


    "SaveName": {
      "default": "Game",
      "title": "Save Name",
      "type": "string",
      "category": "storage",
      "file": "storage"
    },
    "SaveFrequency": {
      "default": 60,
      "title": "Save Frequency",
      "type": "number",
      "category": "storage",
      "file": "storage"
    },
    "CleanupFilesOnExceptions": {
      "default": false,
      "format": "dropdown",
      "title": "Cleanup Files On Exceptions",
      "type": "boolean",
      "category": "storage",
      "file": "storage"
    },
    "UseCacheForDBQueries": {
      "default": true,
      "format": "dropdown",
      "title": "Use Cache For DB Queries",
      "type": "boolean",
      "category": "storage",
      "file": "storage"
    },
    "StorageDirectory": {
      "default": "Storage",
      "title": "Storage Directory",
      "type": "string",
      "category": "storage",
      "file": "storage"
    },

    "WorldTickCPUMax": {
      "default": 0.25,
      "title": "WorldTick CPU Max",
      "type": "number",
      "category": "world",
      "file": "world"
    },

    "TargetTickDeltaTimeMS": {
      "default": 0,
      "title": "Target Tick Delta Time in MS",
      "type": "number",
      "category": "worldobjects",
      "file": "worldobjects"
    },
    "ParallelWorldObjectTicks": {
      "default": false,
      "format": "dropdown",
      "title": "Parallel World Object Tickss",
      "type": "boolean",
      "category": "worldobjects",
      "file": "worldobjects"
    }
  }
}
