# ue-serialization-savegames

Помогает проектировать сохранение и загрузку игры в Unreal Engine 5.8 на C++, от работы со слотами до бинарной сериализации. Пригодится при настройке USaveGame и снимков акторов.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1100 установок · ★ 405
- Автор: quodsoler
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/quodsoler/unreal-engine-skills/tree/HEAD/skills/ue-serialization-savegames/SKILL.md
- Обновлён: 2026-09-28
- HTML: https://affpapa.org/nevibecode/skills/ue-serialization-savegames

## Что делает

Скилл ориентирован на Unreal Engine 5.8 и сверяет вызовы по заголовочным файлам движка. Он помогает настроить сохранение через `USaveGame`, асинхронные вызовы в `UGameplayStatics`, бинарную сериализацию в `FArchive` и версионирование сейвов с помощью `FCustomVersion`. Если в проекте есть файл `.agents/ue-project-context.md`, агент сначала читает его, выясняя архитектурные соглашения и активные плагины.

Поведение `SaveGameToSlot` здесь важно учитывать сразу: этот метод пишет все поля без модификатора `Transient`, полностью игнорируя флаг `SaveGame`. Если забыть пометить временные переменные как `Transient`, файл сохранения быстро раздуется лишними данными. Спецификатор `SaveGame` движок учитывает только в архивах с флагом `ArIsSaveGame` — например, при создании слепков акторов.

Для сборки понадобятся модули `Core`, `CoreUObject` и `Engine` в `Build.cs`. При использовании `UDeveloperSettings` в `PublicDependencyModuleNames` нужно добавить `DeveloperSettings`, а для работы с JSON — модули `Json` и `JsonUtilities` в `PrivateDependencyModuleNames`. В асинхронных методах движок использует простые делегаты, поэтому функции обратного вызова нельзя помечать макросом `UFUNCTION`.

## Требования
- Работает с: Unreal Engine

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add quodsoler/unreal-engine-skills --skill ue-serialization-savegames -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/ue-serialization-savegames/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/ue-serialization-savegames/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add quodsoler/unreal-engine-skills --skill ue-serialization-savegames -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/ue-serialization-savegames/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add quodsoler/unreal-engine-skills --skill ue-serialization-savegames -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/ue-serialization-savegames/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install quodsoler/unreal-engine-skills ue-serialization-savegames
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/ue-serialization-savegames/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add quodsoler/unreal-engine-skills --skill ue-serialization-savegames -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/quodsoler/unreal-engine-skills --path skills/ue-serialization-savegames
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/ue-serialization-savegames/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add quodsoler/unreal-engine-skills --skill ue-serialization-savegames -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/quodsoler/unreal-engine-skills/tree/HEAD/skills/ue-serialization-savegames/SKILL.md

## Когда брать
- настроить асинхронное сохранение и загрузку через `UGameplayStatics` без замирания кадра
- сохранить снимки состояния акторов и компонентов с помощью флага `SaveGame`
- добавить версионирование структур и миграцию устаревших файлов сохранений
- организовать профили настроек через `ULocalPlayerSaveGame` и `UDeveloperSettings`

## Примеры запросов агенту
- Создай класс `UMySaveGame` на C++ для Unreal Engine 5.8 с версионированием и сохранением инвентаря через `FSoftObjectPath`.
- Напиши подсистему `UGameInstanceSubsystem` для асинхронного сохранения слота через `AsyncSaveGameToSlot` с обработкой ошибок.
- Как сериализовать состояние актора в память через `FMemoryWriter` и `UPROPERTY(SaveGame)`?

## Похожие
- [unreal-cpp-gameplay](https://affpapa.org/nevibecode/skills/unreal-cpp-gameplay.md) — скилл · 5300 установок
- [unreal-niagara](https://affpapa.org/nevibecode/skills/unreal-niagara.md) — скилл · 5200 установок
- [unreal-engine-cpp-pro](https://affpapa.org/nevibecode/skills/unreal-engine-cpp-pro.md) — скилл · 1400 установок
- [unreal-engine](https://affpapa.org/nevibecode/skills/unreal-engine.md) — скилл · 511 установок
- [game-developer](https://affpapa.org/nevibecode/skills/game-developer.md) — скилл · 6400 установок
- [flutter-implement-json-serialization](https://affpapa.org/nevibecode/skills/flutter-implement-json-serialization.md) — скилл · 37400 установок

Из того же набора: [quodsoler/unreal-engine-skills](https://affpapa.org/nevibecode/by/quodsoler/unreal-engine-skills.md) — 27 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
