- Open 「用户轨迹」 straight on the live map instead of a drawer, carrying the server, the focused user and a start/end window through the plugin page hash. - Default that window to one hour before the user's last seen time and keep the plugin page query available to bundles through the host context. - Replace the time range preset gate with always visible start/end datetime fields plus a quick-range select, so the user list rebuilds from the window. - Drop the bulky trajectory list and draw one compact colour legend under the map, keeping a stable colour per identity and restricting vehicle tracks to the vehicles the selected users actually rode.
1332 lines
36 KiB
JSON
1332 lines
36 KiB
JSON
{
|
|
"$schema": "../../manifests/game-plugin.manifest.schema.json",
|
|
"id": "game.scum",
|
|
"name": "SCUM Server",
|
|
"description": "First-party SCUM game server operations plugin with platform-mediated lifecycle and plugin-owned RCON data flows.",
|
|
"version": "0.1.23",
|
|
"kind": "game-plugin",
|
|
"tags": [
|
|
"scum",
|
|
"survival",
|
|
"dedicated-server",
|
|
"game-operations",
|
|
"rcon"
|
|
],
|
|
"server": {
|
|
"type": "scum",
|
|
"displayName": "SCUM Dedicated Server",
|
|
"supportedOS": [
|
|
"windows",
|
|
"linux"
|
|
],
|
|
"createFormSchema": "schemas/create-form.schema.json",
|
|
"createFields": [
|
|
{
|
|
"key": "serverName",
|
|
"label": "SCUM 服务器名称",
|
|
"type": "text",
|
|
"required": true,
|
|
"configKey": "serverName"
|
|
},
|
|
{
|
|
"key": "gamePort",
|
|
"label": "游戏端口",
|
|
"type": "port",
|
|
"required": true,
|
|
"defaultValue": "7779",
|
|
"configKey": "gamePort"
|
|
},
|
|
{
|
|
"key": "queryPort",
|
|
"label": "查询端口",
|
|
"type": "port",
|
|
"required": true,
|
|
"defaultValue": "27015",
|
|
"configKey": "queryPort"
|
|
},
|
|
{
|
|
"key": "maxPlayers",
|
|
"label": "最大玩家数",
|
|
"type": "number",
|
|
"required": true,
|
|
"defaultValue": "128",
|
|
"configKey": "maxPlayers"
|
|
}
|
|
]
|
|
},
|
|
"capabilities": [
|
|
"process.install",
|
|
"process.start",
|
|
"process.stop",
|
|
"process.restart",
|
|
"process.status",
|
|
"files.list",
|
|
"files.read",
|
|
"files.patch",
|
|
"logs.read",
|
|
"remote.ftp.read",
|
|
"remote.ftp.write",
|
|
"remote.rsync.read",
|
|
"remote.rsync.write",
|
|
"remote.run.files.read",
|
|
"remote.run.files.write",
|
|
"remote.run.process.start",
|
|
"remote.run.process.stop",
|
|
"remote.run.logs.transfer",
|
|
"remote.run.rcon.command",
|
|
"remote.run.program.command",
|
|
"remote.run.db.sqlite.query",
|
|
"artifacts.read",
|
|
"artifacts.write",
|
|
"ai.invoke"
|
|
],
|
|
"remoteAccess": {
|
|
"methods": [
|
|
"ftp",
|
|
"rsync",
|
|
"run"
|
|
],
|
|
"runCapabilities": [
|
|
"remote.run.files.read",
|
|
"remote.run.files.write",
|
|
"remote.run.process.start",
|
|
"remote.run.process.stop",
|
|
"remote.run.logs.transfer",
|
|
"remote.run.rcon.command",
|
|
"remote.run.program.command",
|
|
"remote.run.db.sqlite.query"
|
|
],
|
|
"rcon": true,
|
|
"databaseEngines": [
|
|
"sqlite"
|
|
],
|
|
"logTransfer": true
|
|
},
|
|
"bridge": {
|
|
"actions": [
|
|
"server.instances.read",
|
|
"jobs.dispatch",
|
|
"artifacts.open",
|
|
"remote.access.request",
|
|
"ai.invoke",
|
|
"run.distribution.request",
|
|
"dependencies.request",
|
|
"plugin-lifecycle.request"
|
|
]
|
|
},
|
|
"gameClientBridge": {
|
|
"commands": [
|
|
{
|
|
"type": "player.lookup",
|
|
"title": "Look up SCUM player",
|
|
"permission": "server.game-client.read",
|
|
"payloadSchemaRef": "schemas/bridge/player-lookup.payload.schema.json",
|
|
"resultSchemaRef": "schemas/bridge/player-lookup.result.schema.json",
|
|
"timeoutSeconds": 30,
|
|
"maxPayloadBytes": 4096
|
|
},
|
|
{
|
|
"type": "reward.deliver",
|
|
"title": "Deliver SCUM reward",
|
|
"permission": "server.game-client.command",
|
|
"payloadSchemaRef": "schemas/bridge/reward-deliver.payload.schema.json",
|
|
"resultSchemaRef": "schemas/bridge/reward-deliver.result.schema.json",
|
|
"timeoutSeconds": 60,
|
|
"maxPayloadBytes": 4096
|
|
},
|
|
{
|
|
"type": "player.notify",
|
|
"title": "Notify SCUM player about approved gift",
|
|
"permission": "server.game-client.command",
|
|
"payloadSchemaRef": "schemas/bridge/player-notify.payload.schema.json",
|
|
"resultSchemaRef": "schemas/bridge/player-notify.result.schema.json",
|
|
"timeoutSeconds": 60,
|
|
"maxPayloadBytes": 2048
|
|
},
|
|
{
|
|
"type": "vehicle.spawn",
|
|
"title": "Spawn catalogued SCUM vehicle",
|
|
"permission": "server.game-client.command",
|
|
"payloadSchemaRef": "schemas/bridge/vehicle-spawn.payload.schema.json",
|
|
"resultSchemaRef": "schemas/bridge/vehicle-spawn.result.schema.json",
|
|
"timeoutSeconds": 60,
|
|
"maxPayloadBytes": 1024
|
|
},
|
|
{
|
|
"type": "event.start",
|
|
"title": "Start SCUM event",
|
|
"permission": "server.game-client.command",
|
|
"payloadSchemaRef": "schemas/bridge/event-start.payload.schema.json",
|
|
"resultSchemaRef": "schemas/bridge/event-start.result.schema.json",
|
|
"timeoutSeconds": 60,
|
|
"maxPayloadBytes": 4096
|
|
},
|
|
{
|
|
"type": "restart.prepare",
|
|
"title": "Prepare SCUM restart",
|
|
"permission": "server.game-client.maintenance",
|
|
"payloadSchemaRef": "schemas/bridge/restart-prepare.payload.schema.json",
|
|
"resultSchemaRef": "schemas/bridge/restart-prepare.result.schema.json",
|
|
"timeoutSeconds": 120,
|
|
"maxPayloadBytes": 4096
|
|
},
|
|
{
|
|
"type": "maintenance.prepare",
|
|
"title": "Prepare SCUM maintenance",
|
|
"permission": "server.game-client.maintenance",
|
|
"payloadSchemaRef": "schemas/bridge/maintenance-prepare.payload.schema.json",
|
|
"resultSchemaRef": "schemas/bridge/maintenance-prepare.result.schema.json",
|
|
"timeoutSeconds": 120,
|
|
"maxPayloadBytes": 4096
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"type": "online.sessions",
|
|
"schemaVersion": "1",
|
|
"schemaRef": "schemas/bridge/online-sessions.snapshot.schema.json",
|
|
"keepForSeconds": 86400,
|
|
"maxRecords": 1000
|
|
},
|
|
{
|
|
"type": "players",
|
|
"schemaVersion": "1",
|
|
"schemaRef": "schemas/bridge/players.snapshot.schema.json",
|
|
"keepForSeconds": 86400,
|
|
"maxRecords": 1000
|
|
},
|
|
{
|
|
"type": "player.state",
|
|
"schemaVersion": "1",
|
|
"schemaRef": "schemas/bridge/player-state.snapshot.schema.json",
|
|
"keepForSeconds": 86400,
|
|
"maxRecords": 1000
|
|
},
|
|
{
|
|
"type": "squads",
|
|
"schemaVersion": "1",
|
|
"schemaRef": "schemas/bridge/squads.snapshot.schema.json",
|
|
"keepForSeconds": 86400,
|
|
"maxRecords": 1000
|
|
},
|
|
{
|
|
"type": "vehicles",
|
|
"schemaVersion": "1",
|
|
"schemaRef": "schemas/bridge/vehicles.snapshot.schema.json",
|
|
"keepForSeconds": 86400,
|
|
"maxRecords": 1000
|
|
},
|
|
{
|
|
"type": "flags",
|
|
"schemaVersion": "1",
|
|
"schemaRef": "schemas/bridge/flags.snapshot.schema.json",
|
|
"keepForSeconds": 86400,
|
|
"maxRecords": 1000
|
|
}
|
|
],
|
|
"dataPacks": [
|
|
{
|
|
"key": "scum-config-v57",
|
|
"databaseUserVersion": 57,
|
|
"configMapRefs": [
|
|
"data-packs/scum-config-v57/config-maps.json"
|
|
],
|
|
"dataRefs": [
|
|
"data-packs/scum-config-v57/gift-items.json",
|
|
"data-packs/scum-config-v57/map-geometry.json"
|
|
]
|
|
}
|
|
],
|
|
"commandRetentionSeconds": 604800,
|
|
"maxCommands": 1000,
|
|
"features": [
|
|
{
|
|
"key": "player.intelligence",
|
|
"title": "SCUM player intelligence",
|
|
"permission": "server.game-client.read",
|
|
"requiredHandlers": [
|
|
"player.lookup"
|
|
]
|
|
},
|
|
{
|
|
"key": "reward.delivery",
|
|
"title": "SCUM reward delivery",
|
|
"permission": "server.game-client.command",
|
|
"requiredHandlers": [
|
|
"reward.deliver",
|
|
"player.notify"
|
|
]
|
|
},
|
|
{
|
|
"key": "vehicle.spawn",
|
|
"title": "SCUM catalogued vehicle spawn",
|
|
"permission": "server.game-client.command",
|
|
"requiredHandlers": [
|
|
"vehicle.spawn"
|
|
]
|
|
},
|
|
{
|
|
"key": "trajectory.collect",
|
|
"title": "SCUM trajectories",
|
|
"permission": "server.game-client.read",
|
|
"requiredEventProducers": [
|
|
"players",
|
|
"vehicles"
|
|
]
|
|
}
|
|
],
|
|
"pages": [
|
|
{
|
|
"pageKey": "players",
|
|
"snapshotTypes": [
|
|
"players",
|
|
"online.sessions"
|
|
],
|
|
"featureKeys": [
|
|
"player.intelligence"
|
|
]
|
|
},
|
|
{
|
|
"pageKey": "squads",
|
|
"snapshotTypes": [
|
|
"squads",
|
|
"flags"
|
|
],
|
|
"featureKeys": [
|
|
"player.intelligence"
|
|
]
|
|
},
|
|
{
|
|
"pageKey": "live-map",
|
|
"snapshotTypes": [
|
|
"players",
|
|
"vehicles",
|
|
"flags"
|
|
],
|
|
"featureKeys": [
|
|
"trajectory.collect"
|
|
]
|
|
},
|
|
{
|
|
"pageKey": "gifts",
|
|
"snapshotTypes": [
|
|
"players"
|
|
],
|
|
"commandTypes": [
|
|
"reward.deliver"
|
|
],
|
|
"featureKeys": [
|
|
"reward.delivery"
|
|
]
|
|
},
|
|
{
|
|
"pageKey": "workflows",
|
|
"commandTypes": [
|
|
"event.start"
|
|
],
|
|
"featureKeys": [
|
|
"player.intelligence"
|
|
]
|
|
}
|
|
],
|
|
"queryTemplates": [
|
|
{
|
|
"key": "scum.database.players",
|
|
"title": "Read SCUM player, squad, economy, and position facts",
|
|
"permission": "server.game-client.read",
|
|
"engine": "sqlite",
|
|
"transportKey": "scum-database",
|
|
"targetKey": "scum-database",
|
|
"parameterSchemaRef": "schemas/bridge/queries/scum-database-players.parameters.schema.json",
|
|
"resultSchemaRef": "schemas/bridge/queries/scum-database-players.result.schema.json",
|
|
"sqlRef": "sql/scum-db-v57/players.sql",
|
|
"pollIntervalSeconds": 60,
|
|
"maxRows": 180,
|
|
"timeoutSeconds": 30,
|
|
"projections": [
|
|
{
|
|
"collection": "scum.users",
|
|
"rowPath": "rows",
|
|
"upsertKeys": [
|
|
"steamId"
|
|
],
|
|
"fieldMappings": {
|
|
"steamId": "steamId",
|
|
"displayName": "displayName",
|
|
"loginIp": "lastLoginIp",
|
|
"squadId": "squadId",
|
|
"online": "online",
|
|
"login": "freshLogin",
|
|
"loginObservedAt": "lastLoginTime",
|
|
"bankBalance": "normalBalance",
|
|
"goldBars": "goldBalance",
|
|
"riddenGameVehicleId": "riddenGameVehicleId",
|
|
"x": "x",
|
|
"y": "y",
|
|
"z": "z"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"key": "scum.database.vehicles",
|
|
"title": "Read SCUM vehicle positions and classes",
|
|
"permission": "server.game-client.read",
|
|
"engine": "sqlite",
|
|
"transportKey": "scum-database",
|
|
"targetKey": "scum-database",
|
|
"parameterSchemaRef": "schemas/bridge/queries/scum-database-vehicles.parameters.schema.json",
|
|
"resultSchemaRef": "schemas/bridge/queries/scum-database-vehicles.result.schema.json",
|
|
"sqlRef": "sql/scum-db-v57/vehicles.sql",
|
|
"pollIntervalSeconds": 120,
|
|
"maxRows": 220,
|
|
"timeoutSeconds": 30,
|
|
"projections": [
|
|
{
|
|
"collection": "scum.vehicles",
|
|
"rowPath": "rows",
|
|
"upsertKeys": [
|
|
"gameVehicleId"
|
|
],
|
|
"fieldMappings": {
|
|
"gameVehicleId": "gameVehicleId",
|
|
"vehicleClass": "vehicleClass",
|
|
"displayName": "displayName",
|
|
"exists": "existsInGame",
|
|
"x": "x",
|
|
"y": "y",
|
|
"z": "z",
|
|
"observedAt": "observedAt"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"permissions": [
|
|
"server.create",
|
|
"server.read",
|
|
"server.lifecycle",
|
|
"server.files.read",
|
|
"server.files.write",
|
|
"server.logs.read",
|
|
"server.artifacts.read",
|
|
"server.artifacts.write",
|
|
"server.remote.access",
|
|
"ai.invoke",
|
|
"server.run.distribution",
|
|
"server.dependencies.manage",
|
|
"server.game-client.read",
|
|
"server.game-client.command",
|
|
"server.game-client.maintenance"
|
|
],
|
|
"fileWorkspace": {
|
|
"defaultDirectoryKey": "scum-config",
|
|
"directories": [
|
|
{
|
|
"key": "scum-config",
|
|
"label": "服务器配置",
|
|
"scope": "config"
|
|
},
|
|
{
|
|
"key": "scum-logs",
|
|
"label": "日志文件",
|
|
"scope": "logs"
|
|
}
|
|
],
|
|
"files": [
|
|
{
|
|
"key": "scum-server-settings",
|
|
"directoryKey": "scum-config",
|
|
"label": "ServerSettings.ini",
|
|
"kind": "config",
|
|
"editable": true
|
|
},
|
|
{
|
|
"key": "scum-admin-users",
|
|
"directoryKey": "scum-config",
|
|
"label": "AdminUsers.ini",
|
|
"kind": "config",
|
|
"editable": true
|
|
},
|
|
{
|
|
"key": "scum-banned-users",
|
|
"directoryKey": "scum-config",
|
|
"label": "BannedUsers.ini",
|
|
"kind": "config",
|
|
"editable": true
|
|
},
|
|
{
|
|
"key": "scum-whitelist-users",
|
|
"directoryKey": "scum-config",
|
|
"label": "WhitelistUsers.ini",
|
|
"kind": "config",
|
|
"editable": true
|
|
},
|
|
{
|
|
"key": "scum-server-log",
|
|
"directoryKey": "scum-logs",
|
|
"label": "Server.log",
|
|
"kind": "log",
|
|
"streamKey": "scum.server"
|
|
},
|
|
{
|
|
"key": "scum-chat-log",
|
|
"directoryKey": "scum-logs",
|
|
"label": "Chat.log",
|
|
"kind": "log",
|
|
"streamKey": "scum.chat"
|
|
},
|
|
{
|
|
"key": "scum-login-log",
|
|
"directoryKey": "scum-logs",
|
|
"label": "Login.log",
|
|
"kind": "log",
|
|
"streamKey": "scum.login"
|
|
},
|
|
{
|
|
"key": "scum-kill-log",
|
|
"directoryKey": "scum-logs",
|
|
"label": "Kill.log",
|
|
"kind": "log",
|
|
"streamKey": "scum.kill"
|
|
},
|
|
{
|
|
"key": "scum-admin-log",
|
|
"directoryKey": "scum-logs",
|
|
"label": "Admin.log",
|
|
"kind": "log",
|
|
"streamKey": "scum.admin"
|
|
},
|
|
{
|
|
"key": "scum-performance-log",
|
|
"directoryKey": "scum-logs",
|
|
"label": "Performance.log",
|
|
"kind": "log",
|
|
"streamKey": "scum.performance"
|
|
}
|
|
],
|
|
"configFields": [
|
|
{
|
|
"key": "server-name",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.ServerName",
|
|
"label": "服务器名称",
|
|
"description": "显示在服务器浏览器与玩家连接界面。",
|
|
"control": "text",
|
|
"defaultValue": "SCUM Server",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "max-players",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.MaxPlayers",
|
|
"label": "最大玩家数",
|
|
"description": "允许同时进入服务器的玩家上限。",
|
|
"control": "number",
|
|
"minimum": 1,
|
|
"maximum": 128,
|
|
"defaultValue": "128",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "welcome-message",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.WelcomeMessage",
|
|
"label": "欢迎消息",
|
|
"description": "登录成功后由已声明的服务器扩展显示给玩家。",
|
|
"control": "text",
|
|
"defaultValue": "",
|
|
"restartImpact": "none"
|
|
},
|
|
{
|
|
"key": "server-description",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.ServerDescription",
|
|
"label": "服务器描述",
|
|
"description": "显示在服务器列表中的详细描述。",
|
|
"control": "text",
|
|
"defaultValue": "",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "server-password",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.ServerPassword",
|
|
"label": "服务器密码",
|
|
"description": "留空表示不设置连接密码。",
|
|
"control": "text",
|
|
"defaultValue": "",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "server-playstyle",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.ServerPlaystyle",
|
|
"label": "服务器玩法",
|
|
"description": "服务器使用的玩法类型,例如 PVE 或 PVP。",
|
|
"control": "text",
|
|
"defaultValue": "PVE",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "message-of-the-day",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.MessageOfTheDay",
|
|
"label": "每日公告",
|
|
"description": "玩家进入服务器后看到的每日公告。",
|
|
"control": "text",
|
|
"defaultValue": "",
|
|
"restartImpact": "none"
|
|
},
|
|
{
|
|
"key": "allow-first-person",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.AllowFirstPerson",
|
|
"label": "允许第一人称",
|
|
"description": "允许玩家使用第一人称视角。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "allow-third-person",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.AllowThirdPerson",
|
|
"label": "允许第三人称",
|
|
"description": "允许玩家使用第三人称视角。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "allow-global-chat",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.AllowGlobalChat",
|
|
"label": "允许公频聊天",
|
|
"description": "允许玩家使用公频聊天。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "none"
|
|
},
|
|
{
|
|
"key": "disable-base-building",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.DisableBaseBuilding",
|
|
"label": "禁用建家",
|
|
"description": "是否完全禁止玩家建造基地。",
|
|
"control": "boolean",
|
|
"defaultValue": "False",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "allow-map-screen",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.AllowMapScreen",
|
|
"label": "允许地图",
|
|
"description": "是否允许玩家打开地图。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "none"
|
|
},
|
|
{
|
|
"key": "allow-kill-claiming",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.AllowKillClaiming",
|
|
"label": "允许领取击杀",
|
|
"description": "是否允许玩家领取击杀奖励。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "none"
|
|
},
|
|
{
|
|
"key": "allow-coma",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.AllowComa",
|
|
"label": "允许昏迷",
|
|
"description": "是否启用昏迷机制。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "allow-mines-and-traps",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.AllowMinesAndTraps",
|
|
"label": "允许地雷和陷阱",
|
|
"description": "是否允许使用地雷和陷阱。",
|
|
"control": "boolean",
|
|
"defaultValue": "False",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "allow-events",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.AllowEvents",
|
|
"label": "允许服务器事件",
|
|
"description": "是否启用服务器事件。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "logout-timer",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.LogoutTimer",
|
|
"label": "下线倒计时",
|
|
"description": "玩家下线前的倒计时秒数。",
|
|
"control": "number",
|
|
"minimum": 0,
|
|
"maximum": 3600,
|
|
"defaultValue": "60",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "fame-gain-multiplier",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.FameGainMultiplier",
|
|
"label": "声望获取倍率",
|
|
"description": "玩家获得声望的倍率。",
|
|
"control": "number",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"defaultValue": "1",
|
|
"restartImpact": "none"
|
|
},
|
|
{
|
|
"key": "max-allowed-characters",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.MaxAllowedCharacters",
|
|
"label": "世界角色上限",
|
|
"description": "世界中同时存在的角色数量上限。",
|
|
"control": "number",
|
|
"minimum": 0,
|
|
"maximum": 10000,
|
|
"defaultValue": "500",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "max-allowed-zombies",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.MaxAllowedZombies",
|
|
"label": "僵尸上限",
|
|
"description": "世界中同时存在的僵尸数量上限。",
|
|
"control": "number",
|
|
"minimum": 0,
|
|
"maximum": 10000,
|
|
"defaultValue": "300",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "max-allowed-animals",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.MaxAllowedAnimals",
|
|
"label": "动物上限",
|
|
"description": "世界中同时存在的动物数量上限。",
|
|
"control": "number",
|
|
"minimum": 0,
|
|
"maximum": 10000,
|
|
"defaultValue": "-1",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "exterior-zombie-amount",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.ExteriorZombieAmountModifier",
|
|
"label": "室外僵尸倍率",
|
|
"description": "室外僵尸数量倍率。",
|
|
"control": "number",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"defaultValue": "3.9",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "interior-zombie-amount",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.InteriorZombieAmountModifier",
|
|
"label": "室内僵尸倍率",
|
|
"description": "室内僵尸数量倍率。",
|
|
"control": "number",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"defaultValue": "2.8",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "fuel-drain-multiplier",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.FuelDrainFromEngineMultiplier",
|
|
"label": "车辆耗油倍率",
|
|
"description": "车辆发动机燃油消耗倍率。",
|
|
"control": "number",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"defaultValue": "1",
|
|
"restartImpact": "none"
|
|
},
|
|
{
|
|
"key": "vehicle-inactivity-time",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.MaximumTimeOfVehicleInactivity",
|
|
"label": "车辆不活跃时间",
|
|
"description": "车辆不活跃后被处理的时间。",
|
|
"control": "text",
|
|
"defaultValue": "168:10:00",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "log-vehicle-destroyed",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.LogVehicleDestroyed",
|
|
"label": "记录车辆摧毁",
|
|
"description": "是否记录车辆被摧毁事件。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "none"
|
|
},
|
|
{
|
|
"key": "raid-protection-type",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.RaidProtectionType",
|
|
"label": "抄家保护类型",
|
|
"description": "服务器抄家保护规则类型。",
|
|
"control": "number",
|
|
"minimum": 0,
|
|
"maximum": 10,
|
|
"defaultValue": "3",
|
|
"restartImpact": "restart-required"
|
|
},
|
|
{
|
|
"key": "quests-enabled",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.QuestsEnabled",
|
|
"label": "启用任务",
|
|
"description": "是否启用商人任务系统。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "none"
|
|
},
|
|
{
|
|
"key": "new-player-protection",
|
|
"fileKey": "scum-server-settings",
|
|
"configKey": "scum.EnableNewPlayerProtection",
|
|
"label": "新人保护",
|
|
"description": "是否启用新人保护。",
|
|
"control": "boolean",
|
|
"defaultValue": "True",
|
|
"restartImpact": "restart-required"
|
|
}
|
|
]
|
|
},
|
|
"actions": {
|
|
"install": "actions/install.json",
|
|
"start": "actions/start.json",
|
|
"stop": "actions/stop.json",
|
|
"restart": "actions/restart.json",
|
|
"status": "actions/status.json"
|
|
},
|
|
"assetFiles": [
|
|
{
|
|
"path": "actions/install.json",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "actions/start.json",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "actions/stop.json",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "actions/restart.json",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "actions/status.json",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "bin/scum-install-update.cmd",
|
|
"mode": 448
|
|
},
|
|
{
|
|
"path": "bin/scum-start.cmd",
|
|
"mode": 448
|
|
},
|
|
{
|
|
"path": "bin/scum-stop.cmd",
|
|
"mode": 448
|
|
},
|
|
{
|
|
"path": "bin/scum-rcon.ps1",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/map/scum-map-overview.jpg",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_Barba.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_CityBike.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_Cruiser.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_Dirtbike.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_Kinglet_Duster.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_Kinglet_Mariner.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_Laika.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_MountainBike.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_RIS.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_Rager.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_Tractor.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BPC_WolfsWagen.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BP_WheelBarrow_Improvised.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "assets/vehicles/vehicle-BP_WheelBarrow_Metal.webp",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "data-packs/scum-config-v57/config-maps.json",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "data-packs/scum-config-v57/gift-items.json",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "data-packs/scum-config-v57/map-geometry.json",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "sql/scum-db-v57/players.sql",
|
|
"mode": 384
|
|
},
|
|
{
|
|
"path": "sql/scum-db-v57/vehicles.sql",
|
|
"mode": 384
|
|
}
|
|
],
|
|
"productionLifecycle": {
|
|
"operations": [
|
|
"install",
|
|
"enable",
|
|
"disable",
|
|
"upgrade",
|
|
"rollback",
|
|
"retire",
|
|
"dependency-check"
|
|
],
|
|
"dependencyPolicy": "required"
|
|
},
|
|
"pages": [
|
|
{
|
|
"key": "players",
|
|
"title": "用户管理",
|
|
"path": "/players",
|
|
"bundleKey": "scum-server-plugin",
|
|
"bundleVersion": "1.0.3",
|
|
"bundleIntegritySha256": "sha256:3488b316d909e597024f8f31c7bc96ab8019f643d74a528dc442d3df0dc3d54e",
|
|
"permissions": [
|
|
"server.read",
|
|
"server.remote.access",
|
|
"server.game-client.read",
|
|
"server.game-client.command",
|
|
"server.game-client.maintenance"
|
|
],
|
|
"bridgeActions": [
|
|
"server.instances.read",
|
|
"remote.access.request"
|
|
],
|
|
"featureKeys": [
|
|
"player.intelligence"
|
|
]
|
|
},
|
|
{
|
|
"key": "squads",
|
|
"title": "队伍管理",
|
|
"path": "/squads",
|
|
"bundleKey": "scum-server-plugin",
|
|
"bundleVersion": "1.0.3",
|
|
"bundleIntegritySha256": "sha256:3488b316d909e597024f8f31c7bc96ab8019f643d74a528dc442d3df0dc3d54e",
|
|
"permissions": [
|
|
"server.read",
|
|
"server.remote.access",
|
|
"server.game-client.read"
|
|
],
|
|
"bridgeActions": [
|
|
"server.instances.read",
|
|
"remote.access.request"
|
|
],
|
|
"featureKeys": [
|
|
"player.intelligence"
|
|
]
|
|
},
|
|
{
|
|
"key": "live-map",
|
|
"title": "实时地图",
|
|
"path": "/live-map",
|
|
"bundleKey": "scum-server-plugin",
|
|
"bundleVersion": "1.0.3",
|
|
"bundleIntegritySha256": "sha256:3488b316d909e597024f8f31c7bc96ab8019f643d74a528dc442d3df0dc3d54e",
|
|
"permissions": [
|
|
"server.read",
|
|
"server.remote.access",
|
|
"server.game-client.read"
|
|
],
|
|
"bridgeActions": [
|
|
"server.instances.read",
|
|
"remote.access.request"
|
|
],
|
|
"featureKeys": [
|
|
"trajectory.collect"
|
|
]
|
|
},
|
|
{
|
|
"key": "gifts",
|
|
"title": "礼包管理",
|
|
"path": "/gifts",
|
|
"bundleKey": "scum-server-plugin",
|
|
"bundleVersion": "1.0.3",
|
|
"bundleIntegritySha256": "sha256:3488b316d909e597024f8f31c7bc96ab8019f643d74a528dc442d3df0dc3d54e",
|
|
"permissions": [
|
|
"server.read",
|
|
"server.remote.access",
|
|
"server.game-client.read",
|
|
"server.game-client.command"
|
|
],
|
|
"bridgeActions": [
|
|
"server.instances.read",
|
|
"remote.access.request"
|
|
],
|
|
"featureKeys": [
|
|
"reward.delivery"
|
|
]
|
|
},
|
|
{
|
|
"key": "workflows",
|
|
"title": "活动管理",
|
|
"path": "/activity",
|
|
"bundleKey": "scum-server-plugin",
|
|
"bundleVersion": "1.0.3",
|
|
"bundleIntegritySha256": "sha256:3488b316d909e597024f8f31c7bc96ab8019f643d74a528dc442d3df0dc3d54e",
|
|
"permissions": [
|
|
"server.read",
|
|
"server.remote.access",
|
|
"server.game-client.read",
|
|
"server.game-client.command"
|
|
],
|
|
"bridgeActions": [
|
|
"server.instances.read",
|
|
"remote.access.request"
|
|
],
|
|
"featureKeys": [
|
|
"player.intelligence"
|
|
]
|
|
}
|
|
],
|
|
"ai": {
|
|
"purposes": [
|
|
"config.suggest"
|
|
],
|
|
"mediation": "platform",
|
|
"configWritePolicy": "review-required"
|
|
},
|
|
"runtimeProfiles": {
|
|
"discovery": [
|
|
{
|
|
"key": "steamcmd",
|
|
"kind": "command.version",
|
|
"targetKey": "steamcmd",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "scum-install",
|
|
"kind": "file.exists",
|
|
"targetKey": "server/install-root",
|
|
"required": true,
|
|
"platforms": [
|
|
"windows"
|
|
]
|
|
}
|
|
],
|
|
"lifecycleProfiles": [
|
|
{
|
|
"key": "run-local",
|
|
"mode": "local-process",
|
|
"capabilities": [
|
|
"process.install",
|
|
"process.start",
|
|
"process.stop",
|
|
"process.restart",
|
|
"process.status",
|
|
"remote.run.process.start",
|
|
"remote.run.process.stop",
|
|
"remote.run.rcon.command"
|
|
],
|
|
"actionRefs": {
|
|
"install": "actions/install.json",
|
|
"start": "actions/start.json",
|
|
"stop": "actions/stop.json",
|
|
"restart": "actions/restart.json",
|
|
"status": "actions/status.json"
|
|
},
|
|
"transportKeys": [
|
|
"server-files",
|
|
"scum-management"
|
|
],
|
|
"dllExtensionRefs": [
|
|
"scum-simple-rcon"
|
|
],
|
|
"platforms": [
|
|
"windows"
|
|
]
|
|
}
|
|
],
|
|
"dependencyProbes": [
|
|
{
|
|
"key": "steamcmd",
|
|
"kind": "command.version",
|
|
"targetKey": "steamcmd",
|
|
"required": true,
|
|
"platforms": [
|
|
"windows",
|
|
"linux"
|
|
]
|
|
},
|
|
{
|
|
"key": "scum-server-build",
|
|
"kind": "steam.update",
|
|
"targetKey": "steamcmd",
|
|
"steamAppId": "3792580",
|
|
"required": false,
|
|
"platforms": [
|
|
"windows"
|
|
]
|
|
}
|
|
],
|
|
"installPlans": [
|
|
{
|
|
"key": "install-steamcmd-linux",
|
|
"title": "Install SteamCMD",
|
|
"platforms": [
|
|
"linux"
|
|
],
|
|
"steps": [
|
|
{
|
|
"type": "package",
|
|
"targetKey": "steamcmd",
|
|
"packageManager": "apt",
|
|
"packageName": "steamcmd"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"logSources": [
|
|
{
|
|
"key": "scum-console-stdout",
|
|
"kind": "process.stdout",
|
|
"targetKey": "scum/server-process",
|
|
"streamKey": "scum.console.stdout",
|
|
"cursorKind": "sequence",
|
|
"retentionDays": 30
|
|
},
|
|
{
|
|
"key": "scum-console-stderr",
|
|
"kind": "process.stderr",
|
|
"targetKey": "scum/server-process",
|
|
"streamKey": "scum.console.stderr",
|
|
"cursorKind": "sequence",
|
|
"retentionDays": 30
|
|
},
|
|
{
|
|
"key": "scum-chat-events",
|
|
"kind": "file.tail",
|
|
"targetKey": "logs/chat",
|
|
"streamKey": "scum.chat",
|
|
"cursorKind": "fingerprint",
|
|
"retentionDays": 90
|
|
},
|
|
{
|
|
"key": "scum-server-events",
|
|
"kind": "file.tail",
|
|
"targetKey": "logs/server",
|
|
"streamKey": "scum.server",
|
|
"cursorKind": "fingerprint",
|
|
"retentionDays": 90
|
|
},
|
|
{
|
|
"key": "scum-login-events",
|
|
"kind": "file.tail",
|
|
"targetKey": "logs/login",
|
|
"streamKey": "scum.login",
|
|
"cursorKind": "fingerprint",
|
|
"retentionDays": 90
|
|
},
|
|
{
|
|
"key": "scum-kill-events",
|
|
"kind": "file.tail",
|
|
"targetKey": "logs/kill",
|
|
"streamKey": "scum.kill",
|
|
"cursorKind": "fingerprint",
|
|
"retentionDays": 90
|
|
},
|
|
{
|
|
"key": "scum-trade-events",
|
|
"kind": "file.tail",
|
|
"targetKey": "logs/trade",
|
|
"streamKey": "scum.trade",
|
|
"cursorKind": "fingerprint",
|
|
"retentionDays": 90
|
|
},
|
|
{
|
|
"key": "scum-admin-events",
|
|
"kind": "file.tail",
|
|
"targetKey": "logs/admin",
|
|
"streamKey": "scum.admin",
|
|
"cursorKind": "fingerprint",
|
|
"retentionDays": 90
|
|
},
|
|
{
|
|
"key": "scum-performance-events",
|
|
"kind": "file.tail",
|
|
"targetKey": "logs/performance",
|
|
"streamKey": "scum.performance",
|
|
"cursorKind": "fingerprint",
|
|
"retentionDays": 30
|
|
}
|
|
],
|
|
"dataTargets": [
|
|
{
|
|
"key": "scum-database",
|
|
"kind": "sqlite.snapshot",
|
|
"transportKey": "scum-database",
|
|
"sourceRootKey": "server-root",
|
|
"sourcePath": "SCUM/Saved/SaveFiles/SCUM.db",
|
|
"workspaceKey": "databases/scum/SCUM.db",
|
|
"refreshPolicy": "on-demand-snapshot",
|
|
"maxBytes": 1073741824,
|
|
"platforms": [
|
|
"windows"
|
|
]
|
|
}
|
|
],
|
|
"transportProfiles": [
|
|
{
|
|
"key": "server-files",
|
|
"kind": "file",
|
|
"targetKey": "server-root",
|
|
"capabilities": [
|
|
"remote.run.files.read",
|
|
"remote.run.files.write"
|
|
]
|
|
},
|
|
{
|
|
"key": "ftp",
|
|
"kind": "ftp",
|
|
"targetKey": "ftp-root",
|
|
"capabilities": [
|
|
"remote.ftp.read",
|
|
"remote.ftp.write"
|
|
]
|
|
},
|
|
{
|
|
"key": "rsync",
|
|
"kind": "rsync",
|
|
"targetKey": "rsync-root",
|
|
"capabilities": [
|
|
"remote.rsync.read",
|
|
"remote.rsync.write"
|
|
]
|
|
},
|
|
{
|
|
"key": "scum-database",
|
|
"kind": "sqlite",
|
|
"targetKey": "scum-database",
|
|
"capabilities": [
|
|
"remote.run.db.sqlite.query"
|
|
]
|
|
},
|
|
{
|
|
"key": "scum-management",
|
|
"kind": "rcon",
|
|
"targetKey": "scum-management",
|
|
"capabilities": [
|
|
"remote.run.rcon.command"
|
|
]
|
|
},
|
|
{
|
|
"key": "scum-program",
|
|
"kind": "program",
|
|
"targetKey": "scum-program",
|
|
"capabilities": [
|
|
"remote.run.program.command"
|
|
]
|
|
}
|
|
],
|
|
"dllExtensions": [
|
|
{
|
|
"key": "scum-simple-rcon",
|
|
"displayName": "SCUM Simple RCON",
|
|
"kind": "ue4ss-dll",
|
|
"activation": "server-start",
|
|
"version": "0.1.0",
|
|
"releaseState": "ready",
|
|
"releaseUrl": "https://cdn.npc0.com/scum_simple_rcon_ue4s.dll",
|
|
"checksum": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
"sizeBytes": 1024,
|
|
"targetKey": "ue4ss/scum-simple-rcon",
|
|
"modKey": "scum_simple_rcon",
|
|
"dllRef": "ue4ss/Mods/scum_simple_rcon/dlls/main.dll",
|
|
"targetExecutableChecksum": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
"ue4ssAbi": "ue4ss-3.0",
|
|
"supportedTargets": [
|
|
{
|
|
"os": "windows",
|
|
"arch": "amd64"
|
|
}
|
|
],
|
|
"updateOnStart": true,
|
|
"rconPort": 27015
|
|
}
|
|
]
|
|
}
|
|
}
|