Files
browser/plugins/examples/scum-server-plugin/manifest.json
T

1422 lines
39 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.15",
"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.db.sqlite.query",
"remote.run.db.sqlite.execute",
"remote.run.process.start",
"remote.run.process.stop",
"remote.run.logs.transfer",
"remote.run.rcon.command",
"remote.run.program.command",
"artifacts.read",
"artifacts.write",
"ai.invoke"
],
"remoteAccess": {
"methods": [
"ftp",
"rsync",
"run"
],
"runCapabilities": [
"remote.run.files.read",
"remote.run.files.write",
"remote.run.db.sqlite.query",
"remote.run.db.sqlite.execute",
"remote.run.process.start",
"remote.run.process.stop",
"remote.run.logs.transfer",
"remote.run.rcon.command",
"remote.run.program.command"
],
"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
}
],
"queryTemplates": [
{
"key": "scum.player.profile",
"title": "Read SCUM player profile, economy, squad, and position facts",
"permission": "server.game-client.read",
"engine": "sqlite",
"transportKey": "scum-database",
"targetKey": "scum-database",
"parameterSchemaRef": "schemas/bridge/queries/scum-player-profile.parameters.schema.json",
"resultSchemaRef": "schemas/bridge/queries/scum-player-profile.result.schema.json",
"sqlRef": "sql/scum-db-v57/users.sql",
"pollIntervalSeconds": 3,
"maxRows": 500,
"timeoutSeconds": 15,
"projections": [
{
"collection": "scum_users",
"rowPath": "rows",
"upsertKeys": [
"steamId"
],
"fixedValues": {
"source": "run.sqlite.scum.player.profile"
},
"observedAtField": "profileSampledAt",
"mergeExisting": true
}
]
},
{
"key": "scum.squads",
"title": "Read SCUM squad records",
"permission": "server.game-client.read",
"engine": "sqlite",
"transportKey": "scum-database",
"targetKey": "scum-database",
"parameterSchemaRef": "schemas/bridge/queries/scum-squads.parameters.schema.json",
"resultSchemaRef": "schemas/bridge/queries/scum-squads.result.schema.json",
"sqlRef": "sql/scum-db-v57/squads.sql",
"pollIntervalSeconds": 1800,
"maxRows": 500,
"timeoutSeconds": 15
},
{
"key": "scum.squad-members",
"title": "Read SCUM squad membership records",
"permission": "server.game-client.read",
"engine": "sqlite",
"transportKey": "scum-database",
"targetKey": "scum-database",
"parameterSchemaRef": "schemas/bridge/queries/scum-squad-members.parameters.schema.json",
"resultSchemaRef": "schemas/bridge/queries/scum-squad-members.result.schema.json",
"sqlRef": "sql/scum-db-v57/squad-members.sql",
"pollIntervalSeconds": 1800,
"maxRows": 500,
"timeoutSeconds": 15
},
{
"key": "scum.vehicles",
"title": "Read SCUM vehicle records and coordinates",
"permission": "server.game-client.read",
"engine": "sqlite",
"transportKey": "scum-database",
"targetKey": "scum-database",
"parameterSchemaRef": "schemas/bridge/queries/scum-vehicles.parameters.schema.json",
"resultSchemaRef": "schemas/bridge/queries/scum-vehicles.result.schema.json",
"sqlRef": "sql/scum-db-v57/vehicles.sql",
"pollIntervalSeconds": 3,
"maxRows": 500,
"timeoutSeconds": 15,
"projections": [
{
"collection": "scum_vehicles",
"rowPath": "rows",
"upsertKeys": [
"vehicleId"
],
"fixedValues": {
"source": "run.sqlite.scum.vehicles"
},
"observedAtField": "sampledAt"
},
{
"collection": "scum_trajectories",
"rowPath": "rows",
"upsertKeys": [
"subjectType",
"subjectId",
"sampledAt"
],
"fieldMappings": {
"subjectId": "vehicleId",
"vehicleId": "vehicleId",
"entityId": "entityId",
"className": "className",
"label": "label",
"x": "x",
"y": "y",
"z": "z",
"lastAccessTime": "lastAccessTime"
},
"fixedValues": {
"subjectType": "vehicle",
"source": "run.sqlite.scum.vehicles"
},
"observedAtField": "sampledAt"
},
{
"collection": "scum_trade_goods",
"rowPath": "rows",
"upsertKeys": [
"code"
],
"fieldMappings": {
"className": "className"
},
"fixedValues": {
"code": "#spawnvehicle {{className}}",
"spawnCommand": "#spawnvehicle {{className}}",
"catalogType": "vehicle",
"type": "21",
"typeName": "其他载具",
"imagePath": "/original/{{className}}.webp",
"source": "run.sqlite.scum.vehicles"
},
"observedAtField": "lastSeenAt",
"mergeExisting": true
}
]
},
{
"key": "scum.flags",
"title": "Read SCUM flag and ownership records",
"permission": "server.game-client.read",
"engine": "sqlite",
"transportKey": "scum-database",
"targetKey": "scum-database",
"parameterSchemaRef": "schemas/bridge/queries/scum-flags.parameters.schema.json",
"resultSchemaRef": "schemas/bridge/queries/scum-flags.result.schema.json",
"sqlRef": "sql/scum-db-v57/flags.sql",
"pollIntervalSeconds": 1800,
"maxRows": 500,
"timeoutSeconds": 15
},
{
"key": "scum.positions",
"title": "Read SCUM player, vehicle, base, and flag coordinates",
"permission": "server.game-client.read",
"engine": "sqlite",
"transportKey": "scum-database",
"targetKey": "scum-database",
"parameterSchemaRef": "schemas/bridge/queries/scum-positions.parameters.schema.json",
"resultSchemaRef": "schemas/bridge/queries/scum-positions.result.schema.json",
"sqlRef": "sql/scum-db-v57/map-points.sql",
"pollIntervalSeconds": 3,
"maxRows": 500,
"timeoutSeconds": 15,
"projections": [
{
"collection": "scum_users",
"rowPath": "rows",
"matchField": "subjectType",
"matchValue": "player",
"upsertKeys": [
"steamId"
],
"fieldMappings": {
"steamId": "subjectId",
"userProfileId": "userProfileId",
"gamePlayerId": "gamePlayerId",
"x": "x",
"y": "y",
"z": "z",
"lastPositionObservedAt": "observedAt"
},
"fixedValues": {
"source": "run.sqlite.scum.positions"
},
"observedAtField": "positionSampledAt"
},
{
"collection": "scum_map_points",
"rowPath": "rows",
"upsertKeys": [
"subjectType",
"subjectId"
],
"fixedValues": {
"source": "run.sqlite.scum.positions"
},
"observedAtField": "sampledAt"
},
{
"collection": "scum_trajectories",
"rowPath": "rows",
"matchField": "subjectType",
"matchValue": "player",
"upsertKeys": [
"subjectType",
"subjectId",
"sampledAt"
],
"fieldMappings": {
"subjectType": "subjectType",
"subjectId": "subjectId",
"steamId": "subjectId",
"userProfileId": "userProfileId",
"gamePlayerId": "gamePlayerId",
"x": "x",
"y": "y",
"z": "z",
"observedAt": "observedAt"
},
"fixedValues": {
"source": "run.sqlite.scum.positions"
},
"observedAtField": "sampledAt"
}
]
},
{
"key": "scum.tasks",
"title": "Read SCUM v57 quest and task records",
"permission": "server.game-client.read",
"engine": "sqlite",
"transportKey": "scum-database",
"targetKey": "scum-database",
"parameterSchemaRef": "schemas/bridge/queries/scum-tasks.parameters.schema.json",
"resultSchemaRef": "schemas/bridge/queries/scum-tasks.result.schema.json",
"sqlRef": "sql/scum-db-v57/tasks.sql",
"pollIntervalSeconds": 1800,
"maxRows": 500,
"timeoutSeconds": 15
},
{
"key": "scum.events",
"title": "Read SCUM v57 native event rounds and statistics",
"permission": "server.game-client.read",
"engine": "sqlite",
"transportKey": "scum-database",
"targetKey": "scum-database",
"parameterSchemaRef": "schemas/bridge/queries/scum-events.parameters.schema.json",
"resultSchemaRef": "schemas/bridge/queries/scum-events.result.schema.json",
"sqlRef": "sql/scum-db-v57/events.sql",
"pollIntervalSeconds": 1800,
"maxRows": 500,
"timeoutSeconds": 15
},
{
"key": "scum.native-timed-gifts",
"title": "Read SCUM v57 native timed gift completion records",
"permission": "server.game-client.read",
"engine": "sqlite",
"transportKey": "scum-database",
"targetKey": "scum-database",
"parameterSchemaRef": "schemas/bridge/queries/scum-native-timed-gifts.parameters.schema.json",
"resultSchemaRef": "schemas/bridge/queries/scum-native-timed-gifts.result.schema.json",
"sqlRef": "sql/scum-db-v57/native-timed-gifts.sql",
"pollIntervalSeconds": 1800,
"maxRows": 500,
"timeoutSeconds": 15
}
],
"lifecycleProjections": [
{
"key": "scum.lifecycle.stop-logout",
"capabilities": [
"process.stop"
],
"target": {
"collection": "scum_users",
"matchField": "online",
"matchValue": "true",
"fixedValues": {
"online": "false",
"status": "offline",
"logoutReason": "server-stop",
"source": "run.lifecycle"
},
"observedAtField": "lastLogoutObservedAt",
"activityTarget": {
"collection": "scum_activity_events",
"upsertKeys": [
"steamId",
"observedAt",
"eventType"
],
"rowMappings": {
"steamId": "steamId",
"displayName": "displayName"
},
"fixedValues": {
"eventType": "logout",
"reason": "server-stop",
"source": "run.lifecycle"
},
"observedAtField": "observedAt"
}
}
},
{
"key": "scum.lifecycle.restart-logout",
"capabilities": [
"process.restart"
],
"target": {
"collection": "scum_users",
"matchField": "online",
"matchValue": "true",
"fixedValues": {
"online": "false",
"status": "offline",
"logoutReason": "server-stop",
"source": "run.lifecycle"
},
"observedAtField": "lastLogoutObservedAt",
"activityTarget": {
"collection": "scum_activity_events",
"upsertKeys": [
"steamId",
"observedAt",
"eventType"
],
"rowMappings": {
"steamId": "steamId",
"displayName": "displayName"
},
"fixedValues": {
"eventType": "logout",
"reason": "server-stop",
"source": "run.lifecycle"
},
"observedAtField": "observedAt"
}
}
},
{
"key": "scum.lifecycle.status-logout",
"capabilities": [
"process.status"
],
"processStates": [
"stopped",
"not-started",
"exited"
],
"target": {
"collection": "scum_users",
"matchField": "online",
"matchValue": "true",
"fixedValues": {
"online": "false",
"status": "offline",
"logoutReason": "server-stop",
"source": "run.lifecycle"
},
"observedAtField": "lastLogoutObservedAt",
"activityTarget": {
"collection": "scum_activity_events",
"upsertKeys": [
"steamId",
"observedAt",
"eventType"
],
"rowMappings": {
"steamId": "steamId",
"displayName": "displayName"
},
"fixedValues": {
"eventType": "logout",
"reason": "server-stop",
"source": "run.lifecycle"
},
"observedAtField": "observedAt"
}
}
}
],
"dataPacks": [
{
"key": "scum-db-v57",
"databaseUserVersion": 57,
"configMapRefs": [
"data-packs/scum-db-v57/config-maps.json"
],
"dataRefs": [
"data-packs/scum-db-v57/gift-items.json",
"data-packs/scum-db-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"
],
"queryTemplateKeys": [
"scum.player.profile",
"scum.positions"
],
"featureKeys": [
"player.intelligence"
]
},
{
"pageKey": "squads",
"snapshotTypes": [
"squads",
"flags"
],
"queryTemplateKeys": [
"scum.squads",
"scum.squad-members",
"scum.flags"
],
"featureKeys": [
"player.intelligence"
]
},
{
"pageKey": "live-map",
"snapshotTypes": [
"players",
"vehicles",
"flags"
],
"queryTemplateKeys": [
"scum.player.profile",
"scum.vehicles",
"scum.flags",
"scum.positions"
],
"featureKeys": [
"trajectory.collect"
]
},
{
"pageKey": "gifts",
"snapshotTypes": [
"players"
],
"queryTemplateKeys": [
"scum.native-timed-gifts"
],
"commandTypes": [
"reward.deliver"
],
"featureKeys": [
"reward.delivery"
]
},
{
"pageKey": "workflows",
"queryTemplateKeys": [
"scum.player.profile",
"scum.squads",
"scum.squad-members",
"scum.vehicles",
"scum.flags",
"scum.positions",
"scum.tasks",
"scum.events",
"scum.native-timed-gifts"
],
"commandTypes": [
"event.start"
],
"featureKeys": [
"player.intelligence"
]
}
]
},
"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": "ServerName",
"label": "服务器名称",
"description": "显示在服务器浏览器与玩家连接界面。",
"control": "text",
"defaultValue": "SCUM Server",
"restartImpact": "restart-required"
},
{
"key": "game-port",
"fileKey": "scum-server-settings",
"configKey": "GamePort",
"label": "游戏端口",
"description": "玩家连接所使用的游戏端口。",
"control": "port",
"minimum": 1,
"maximum": 65535,
"defaultValue": "7779",
"restartImpact": "restart-required"
},
{
"key": "query-port",
"fileKey": "scum-server-settings",
"configKey": "QueryPort",
"label": "查询端口",
"description": "服务器查询和状态发现所使用的端口。",
"control": "port",
"minimum": 1,
"maximum": 65535,
"defaultValue": "27015",
"restartImpact": "restart-required"
},
{
"key": "max-players",
"fileKey": "scum-server-settings",
"configKey": "MaxPlayers",
"label": "最大玩家数",
"description": "允许同时进入服务器的玩家上限。",
"control": "number",
"minimum": 1,
"maximum": 128,
"defaultValue": "128",
"restartImpact": "restart-required"
},
{
"key": "welcome-message",
"fileKey": "scum-server-settings",
"configKey": "WelcomeMessage",
"label": "欢迎消息",
"description": "登录成功后由已声明的服务器扩展显示给玩家。",
"control": "text",
"defaultValue": "",
"restartImpact": "none"
}
]
},
"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": "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": "sql/scum-db-v57/users.sql",
"mode": 384
},
{
"path": "sql/scum-db-v57/squads.sql",
"mode": 384
},
{
"path": "sql/scum-db-v57/squad-members.sql",
"mode": 384
},
{
"path": "sql/scum-db-v57/vehicles.sql",
"mode": 384
},
{
"path": "sql/scum-db-v57/flags.sql",
"mode": 384
},
{
"path": "sql/scum-db-v57/map-points.sql",
"mode": 384
},
{
"path": "sql/scum-db-v57/tasks.sql",
"mode": 384
},
{
"path": "sql/scum-db-v57/events.sql",
"mode": 384
},
{
"path": "sql/scum-db-v57/native-timed-gifts.sql",
"mode": 384
},
{
"path": "data-packs/scum-db-v57/config-maps.json",
"mode": 384
},
{
"path": "data-packs/scum-db-v57/gift-items.json",
"mode": 384
},
{
"path": "data-packs/scum-db-v57/map-geometry.json",
"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.logs.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-database",
"scum-management"
],
"dllExtensionRefs": [
"scum-simple-rcon"
],
"platforms": [
"windows"
]
}
],
"dependencyProbes": [
{
"key": "steamcmd",
"kind": "command.version",
"targetKey": "steamcmd",
"required": true,
"platforms": [
"windows",
"linux"
]
},
{
"key": "sqlite",
"kind": "package.installed",
"targetKey": "sqlite-driver",
"required": false,
"platforms": [
"windows",
"linux"
]
}
],
"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
}
],
"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",
"remote.run.db.sqlite.execute"
]
},
{
"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
}
]
}
}