Ошибка uncaught JavaScript exception в Glyphica: Typing Survival (TypeError: property “x” of undefined) — почему вылетает и как исправить
Содержание показать/скрыть
Иногда в Glyphica: Typing Survival (особенно в демо/ранних сборках) игра может завершаться с сообщением:
-
uncaught jаvascript exception
-
TypeError: Unable to get property 'x' of undefined or null reference
-
в стеке вызовов часто фигурируют pickups (например
freeze.js) и цепочкаPickup.activate → Control.wordInput.
По смыслу это “обычная” для игр на JS-скриптах ситуация: в коде игры ожидается объект с координатами (x/y), а в конкретный момент он оказывается пустым — из-за редкого сценария, бага логики подбора предмета или несовпадения состояния игры/интерфейса. На Steam Community есть похожие отчёты с тем же типом ошибки (Unable to get property ... of undefined or null reference) и похожими цепочками вызовов, связанными с предметами/подборами.
Причины появления
Ниже — самые частые причины, которые реально совпадают с симптомами “TypeError в pickup-скриптах”.
1) Это баг конкретной версии (часто демо/ранний билд)
Если ошибка указывает на конкретный файл вроде @/scripts/pickups/freeze.js, это обычно означает ошибку логики в самой игре, которая проявляется не у всех и не всегда. Разработчики на форуме Steam регулярно отвечают в духе “спасибо за отчёт, проверяем/исправили в обновлении”.
2) Конфликт состояния “слово/подбор/активация”
В вашем логе падение начинается с FreezePickup.prototype.on_activate и уходит в Control.wordInput. Это похоже на момент, когда:
-
предмет уже “считается активированным”,
-
а цель/позиция/объект, к которому он привязан (координаты
x), ещё не создан или уже уничтожен.
3) Повреждённые локальные данные (настройки/кэш/сейвы)
Если локальные файлы после обновлений не совпали с текущей логикой, игра может ловить странные состояния. В обсуждениях по Glyphica встречаются проблемы, которые решаются правками локальных папок/файлов или проверкой данных.
4) Linux + особенности запуска (нативно/через Proton, оверлеи)
На Linux дополнительные факторы — это оверлеи, совместимость и то, как именно запускается игра (нативный рантайм vs Proton). Даже если причина первичная “в игре”, корректная среда часто снижает частоту вылетов.
Пошаговые способы решения (от простых к сложным)
Шаг 1. Обнови игру и проверь, нет ли фикса в свежем патче
Для таких ошибок самое важное — обновления: разработчики часто закрывают подобные краши точечно (как “fixed in most recent update”).
Что сделать:
-
Обнови Glyphica до последней версии (Steam обновит сам).
-
Если есть beta / staging branch (ветка тестовых обновлений) — попробуй её: подобные фиксы иногда сначала выходят там.
Шаг 2. Steam: “Проверить целостность файлов”
Это быстро и часто убирает проблемы после обновлений.
Steam → Библиотека → Glyphica → Свойства → Установленные файлы → Проверить целостность
Шаг 3. Отключи оверлеи и запись экрана
Если включены Steam Overlay / Discord Overlay / запись экрана — временно отключи и проверь, повторяется ли вылет.
Минимум для теста:
-
Steam Overlay — выкл
-
Discord overlay — выкл
-
любые OSD/хуки — выкл
Шаг 4. Сбрось локальные настройки/кэш (аккуратно)
Если ошибка повторяется стабильно, стоит проверить, не “сломались” локальные данные.
Что безопасно попробовать:
-
Найди папку с пользовательскими данными игры (обычно в профиле пользователя Steam/домашней папке).
-
Сделай резервную копию папки (просто скопируй куда-нибудь).
-
Удали кэш/настройки, оставив сейвы (если они отдельно), и проверь запуск.
Подсказка: в обсуждениях Glyphica встречались ситуации, когда проблема была связана именно с локальными файлами/папками и решалась ручными действиями с ними.
Шаг 5. На Linux: попробуй другой режим запуска (нативно ↔ Proton)
Если ты на Linux (как в твоём описании: Ryzen 4000 + Radeon), имеет смысл сравнить:
-
запуск как есть (нативный),
-
запуск через Proton (Steam → Свойства → Совместимость → принудительно выбрать Proton Experimental или стабильный Proton).
Почему это может помочь: иногда меняется среда выполнения и поведение окон/ввода/рендера, и редкие краши становятся реже.
Шаг 6. Временный обходной путь: избегай триггера “Freeze pickup”
Раз ошибка указывает на freeze.js, можно на время снизить шанс её появления:
-
не брать “Freeze”/заморозку, если в забеге видишь, что именно после неё случаются вылеты;
-
протестировать другой билд (без связки, которая часто приводит к частым активациям/подборам).
Это не “исправление навсегда”, но нормальный способ продолжить играть до патча.
Дополнительные советы
Что написать в баг-репорт (чтобы быстрее починили)
Разработчикам полезнее всего:
-
версия игры (demo/full, номер билда),
-
режим (что делал: поднял Freeze, ввёл слово, что было на карте),
-
ОС (Linux, дистрибутив, X11/Wayland),
-
GPU/драйвер (Radeon + версия Mesa),
-
полный текст ошибки/stack trace (как у тебя).
По похожим темам на Steam разработчики отвечают и собирают отчёты, так что шанс фикса хороший.
Информация