# ScumServerManager **Repository Path**: wyark/scum-server-manager ## Basic Information - **Project Name**: ScumServerManager - **Description**: 一个用C#开发的SCUM专用服务器GUI管理工具,支持多服务器管理、自动下载SteamCMD、服务器文件管理和服务器启停控制。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-21 - **Last Updated**: 2025-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SCUM 服务器管理器 一个用C#开发的SCUM专用服务器GUI管理工具,支持**多服务器管理**、自动下载SteamCMD、服务器文件管理和服务器启停控制。 **QQ交流群:291796924** ## 🆕 v2.1 最新功能 ### 🔄 定时重启系统 - ⏰ **双模式重启** - 支持间隔重启和定时重启 - 🛡️ **安全重启机制** - CTRL+C优雅关闭,保护数据安全 - 📅 **智能调度** - 自动计算下次重启时间 - 🔧 **独立配置** - 每个服务器独立的重启设置 ### 🔌 智能端口管理 - 🎯 **自动计算** - 查询端口和Echo端口基于游戏端口自动生成 - 🔒 **只读保护** - 防止手动修改导致的端口配置错误 - ✅ **一致性保证** - 确保端口配置符合SCUM服务器要求 ### 🛡️ 安全关闭优化 - 🔄 **进程保护** - 关闭管理器不会终止服务器进程 - 🎮 **无缝体验** - 玩家游戏不受管理器关闭影响 - 🔗 **智能重连** - 重启管理器自动识别运行中的服务器 ## 📋 v2.0 多服务器管理 - 🖥️ **多服务器支持** - 同时管理多个SCUM服务器实例 - 📋 **服务器侧边栏** - 直观的服务器列表界面,快速切换服务器 - 🔧 **独立配置** - 每个服务器拥有独立的配置和设置 - 📁 **智能文件夹** - 自动管理服务器文件夹(scumserver, scumserver1, scumserver2...) - 🌐 **自动端口分配** - 智能分配端口,避免冲突 - 💾 **共享SteamCMD** - 所有服务器共用一个SteamCMD安装,节省空间 - 🖼️ **DPI缩放优化** - 禁用DPI缩放,确保在不同显示设置下界面显示一致 > 📖 **详细指南**: 查看 [多服务器管理指南](MULTI_SERVER_GUIDE.md) 了解完整使用方法 ## 功能特性 - 🔄 **自动下载SteamCMD** - 自动检测并下载SteamCMD工具 - 📦 **服务器文件管理** - 自动下载和更新SCUM服务器文件 - 🎮 **服务器控制** - 一键启动和停止服务器 - ⚙️ **完整配置管理** - 图形化配置所有服务器参数 - ⚡ **额外启动参数** - 支持自定义启动参数配置 - 📊 **实时日志** - 实时显示服务器运行日志 - 🛡️ **安全关闭** - 程序关闭时不会强制关闭服务器,保证数据安全 - 🔧 **运行库支持** - 安装DirectX和VC++运行库(使用服务器自带安装程序) - 🔌 **智能端口管理** - 查询端口和Echo端口基于游戏端口自动计算,避免配置错误 - ⏰ **定时重启功能** - 支持间隔重启和定时重启两种模式,保持服务器稳定运行 ## 系统要求 - Windows 10/11 (64位) - .NET 6.0 或更高版本 - 至少8GB可用内存 - 至少15GB可用磁盘空间 ## 使用说明 ### 🎯 新功能快速上手 #### 智能端口管理 - 只需设置**游戏端口**,查询端口和Echo端口会自动计算 - 查询端口 = 游戏端口 + 2 - Echo端口 = 游戏端口 + 1 - 避免端口配置错误,确保服务器正常运行 #### 定时重启功能 - **间隔重启**: 设置重启间隔(如每4小时重启一次) - **定时重启**: 设置每日固定时间重启(如每天凌晨3点) - **安全重启**: 使用CTRL+C信号优雅关闭,保护玩家数据 - **独立设置**: 每个服务器可设置不同的重启策略 #### 安全关闭机制 - 关闭管理器程序不会强制终止服务器 - 服务器继续在后台运行,保证玩家游戏不中断 - 重启管理器可重新连接到运行中的服务器 ### 1. 首次使用 1. 运行程序后,首先点击"下载 SteamCMD"按钮 2. 等待SteamCMD下载完成后,点击"下载服务器文件"按钮 3. 等待服务器文件下载完成 4. **(可选)** 如果需要,点击"安装 DirectX"和"安装 VC++ 运行库"按钮安装必要的运行库 ### 2. 服务器设置 在"服务器设置"区域配置以下参数: #### 基础端口设置 - **游戏端口**: 默认7777 (UDP) - 可手动修改 - **查询端口**: 自动计算 (游戏端口+2) - 只读,自动更新 - **Echo端口**: 自动计算 (游戏端口+1) - 只读,自动更新 - **RCON端口**: 默认7780 (TCP) - 可手动修改 > 💡 **端口说明**: 查询端口和Echo端口会根据游戏端口自动计算,确保端口配置的一致性 #### 服务器选项 - **最大玩家数**: 默认64 - **禁用BattlEye反作弊**: 可选,用于测试环境 - **启用详细日志**: 建议开启,便于调试 #### 额外启动参数 支持自定义启动参数,常用参数示例: - `-multihome=192.168.1.100` - 指定服务器绑定的IP地址 - `-RconPassword=123456` - 设置RCON密码 - `-AdminPassword=admin123` - 设置管理员密码 - `-MaxSquadSize=8` - 设置小队最大人数 - `-ServerMaxAllowedPing=200` - 设置最大允许延迟 > 💡 **提示**: 多个参数用空格分隔,例如:`-multihome=192.168.1.100 -RconPassword=123456` ### 3. 启动服务器 1. 确保服务器文件已下载完成 2. 配置好服务器参数 3. 点击"启动服务器"按钮 4. 在日志区域查看服务器状态和完整启动参数 ### 4. 服务器配置 1. 点击"服务器配置"按钮打开配置界面 2. 在不同标签页中配置各种服务器参数: - **常规设置**: 服务器名称、密码、最大玩家数等 - **世界设置**: 游戏世界相关参数 - **重生设置**: 玩家重生相关配置 - **载具设置**: 载具数量和行为设置 - **伤害设置**: 伤害倍数相关配置 - **功能设置**: 其他游戏功能开关 3. 配置完成后点击"保存配置" 4. 配置文件将保存到服务器目录的正确位置 > 📝 **注意**: 启动参数设置和服务器配置文件是两个不同的配置方式: > - **启动参数**: 影响服务器启动行为,如端口、IP绑定等 > - **配置文件**: 影响游戏内设置,如服务器名称、游戏规则等 ### 5. 运行库安装 如果服务器启动时提示缺少DLL文件,可以使用内置的运行库安装功能: #### DirectX 安装 - 点击"安装 DirectX"按钮 - 程序会自动查找服务器文件中的DirectX安装程序(位于`scumserver\_CommonRedist\DirectX\Jun2010\DXSETUP.exe`) - 安装程序会以管理员权限运行,按照提示完成安装 #### VC++ 运行库安装 - 点击"安装 VC++ 运行库"按钮 - 程序会自动查找服务器文件中的VC++运行库安装程序(位于`scumserver\_CommonRedist\vcredist\2022\VC_redist.x64.exe`) - 安装程序会静默安装,无需用户交互 > 💡 **提示**: 这些安装程序只有在下载服务器文件后才可用,它们是SCUM服务器文件的一部分 ### 6. 定时重启功能 程序支持两种定时重启模式,帮助保持服务器稳定运行: #### 间隔重启模式 - 勾选"启用定时重启"复选框 - 选择"间隔重启"单选按钮 - 设置重启间隔时间(小时和分钟) - 服务器将按设定的时间间隔自动重启 #### 定时重启模式 - 勾选"启用定时重启"复选框 - 选择"定时重启"单选按钮 - 设置每日重启的具体时间 - 服务器将在每天的指定时间自动重启 #### 重启安全机制 - 重启时会先发送CTRL+C信号进行优雅关闭 - 等待服务器完全关闭后再重新启动 - 确保玩家数据和世界存档的安全性 - 重启过程会在日志中显示详细信息 > ⚠️ **重要提示**: 定时重启会暂时中断玩家游戏,建议在玩家较少的时间段设置重启 ### 7. 停止服务器 点击"停止服务器"按钮即可安全停止服务器。程序关闭时不会强制终止服务器进程,服务器将继续在后台运行。 ## 端口配置 确保以下端口在防火墙和路由器中已开放: - UDP 7777 (游戏端口) - UDP 7778 (Echo端口) - UDP 7779 (查询端口) - TCP 7780 (RCON端口,可选) > 🌐 **端口说明**: 如果修改了默认端口,请相应调整防火墙规则 ## 常用启动参数参考 | 参数 | 说明 | 示例 | |------|------|------| | `-multihome` | 绑定特定IP地址 | `-multihome=192.168.1.100` | | `-RconPassword` | RCON密码 | `-RconPassword=123456` | | `-AdminPassword` | 管理员密码 | `-AdminPassword=admin123` | | `-MaxSquadSize` | 最大小队人数 | `-MaxSquadSize=8` | | `-ServerMaxAllowedPing` | 最大延迟限制 | `-ServerMaxAllowedPing=200` | | `-GameSessionName` | 游戏会话名称 | `-GameSessionName="My Server"` | ## 文件结构 ### 多服务器文件结构 (v2.0+) ``` 程序目录/ ├── steamcmd/ # SteamCMD文件(共享) ├── scumserver/ # 第一个服务器文件 │ ├── _CommonRedist/ # 运行库安装程序 │ │ ├── DirectX/ │ │ │ └── Jun2010/ │ │ │ └── DXSETUP.exe # DirectX安装程序 │ │ └── vcredist/ │ │ └── 2022/ │ │ └── VC_redist.x64.exe # VC++运行库安装程序 │ └── SCUM/ │ └── Saved/ │ └── Config/ │ └── WindowsServer/ │ └── ServerSettings.ini # 服务器配置文件 ├── scumserver1/ # 第二个服务器文件 │ └── SCUM/... ├── scumserver2/ # 第三个服务器文件 │ └── SCUM/... ├── servers.json # 多服务器配置文件 (新增) ├── settings.json # 程序设置文件 └── ScumServerManager.exe ``` ## 编译说明 ### 开发编译 1. 确保安装了.NET 6.0 SDK 2. 在项目目录中运行: ```bash dotnet build --configuration Release ``` ### 发布单文件可执行程序 要创建一个独立的可执行文件,可以直接分发给其他用户: **方法1: 使用批处理脚本** ```bash publish.bat ``` **方法2: 手动命令** ```bash dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishReadyToRun=true ``` 发布后的文件位于:`bin\Release\net6.0-windows\win-x64\publish\ScumServerManager.exe` ### 发布特性 - **单文件部署**: 所有依赖项都打包在一个exe文件中 - **自包含**: 无需在目标机器上安装.NET运行时 - **即用型**: 其他用户可以直接运行,无需任何配置 - **优化性能**: 使用ReadyToRun提高启动速度 ## 注意事项 - 首次下载服务器文件可能需要较长时间 - 确保有足够的磁盘空间和网络带宽 - 关闭程序时服务器将继续运行,不会被强制关闭 - 建议在专用服务器上运行以获得最佳性能 - 额外启动参数会自动保存,下次启动时会自动应用 - 定时重启设置会为每个服务器独立保存 - 查询端口和Echo端口会根据游戏端口自动调整,无需手动配置 ## 故障排除 ### DPI缩放问题 如果在高DPI显示器上界面显示异常或控件重叠: - 程序已默认禁用DPI缩放,应该在不同DPI设置下显示一致 - 如果仍有问题,可以右键程序图标 → 属性 → 兼容性 → 更改高DPI设置 → 勾选"替代高DPI缩放行为" ### 其他常见问题 ### 服务器无法启动 1. 检查服务器文件是否完整下载 2. 确认端口未被占用 3. 检查防火墙设置 4. 检查额外启动参数格式是否正确 5. 如果提示缺少DLL文件,尝试安装DirectX和VC++运行库 ### 下载失败 1. 检查网络连接 2. 确认有足够的磁盘空间 3. 尝试以管理员权限运行 ### 参数不生效 1. 检查启动参数格式是否正确 2. 查看日志中显示的完整启动命令 3. 确认参数名称拼写正确 ### 定时重启问题 1. 确认已勾选"启用定时重启"复选框 2. 检查重启时间设置是否正确 3. 查看日志中的重启相关信息 4. 如果重启失败,检查服务器是否正常运行 ### 端口冲突 1. 游戏端口被占用时,修改游戏端口,查询端口和Echo端口会自动调整 2. 如果RCON端口冲突,手动修改RCON端口 3. 使用`netstat -an`命令检查端口占用情况 ## 交流群 💬 **SCUM开服器交流群**: 485157229 ## 许可证 本项目采用MIT许可证。