diff --git a/Content.Client/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUi.cs b/Content.Client/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUi.cs
new file mode 100644
index 00000000000..95880a806c2
--- /dev/null
+++ b/Content.Client/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUi.cs
@@ -0,0 +1,35 @@
+using Robust.Client.UserInterface;
+using Content.Client.UserInterface.Fragments;
+using Content.Shared._CorvaxNext.CartridgeLoader.Cartridges;
+using Content.Shared.CartridgeLoader;
+using Robust.Shared.Prototypes;
+
+namespace Content.Client._CorvaxNext.CartridgeLoader.Cartridges;
+
+public sealed partial class CrimeAssistUi : UIFragment
+{
+ private CrimeAssistUiFragment? _fragment;
+
+ public override Control GetUIFragmentRoot()
+ {
+ return _fragment!;
+ }
+
+ public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner)
+ {
+ _fragment = new CrimeAssistUiFragment();
+
+ _fragment.OnSync += _ => SendSyncMessage(userInterface);
+ }
+
+ private void SendSyncMessage(BoundUserInterface userInterface)
+ {
+ var syncMessage = new CrimeAssistSyncMessageEvent();
+ var message = new CartridgeUiMessage(syncMessage);
+ userInterface.SendMessage(message);
+ }
+
+ public override void UpdateState(BoundUserInterfaceState state)
+ {
+ }
+}
diff --git a/Content.Client/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml b/Content.Client/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml
new file mode 100644
index 00000000000..59a33a79a2e
--- /dev/null
+++ b/Content.Client/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Content.Client/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml.cs b/Content.Client/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml.cs
new file mode 100644
index 00000000000..0d2f3956267
--- /dev/null
+++ b/Content.Client/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUiFragment.xaml.cs
@@ -0,0 +1,156 @@
+using Content.Client.Message;
+using Content.Shared._CorvaxNext.CartridgeLoader.Cartridges;
+using Robust.Client.AutoGenerated;
+using Robust.Client.ResourceManagement;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.XAML;
+using Robust.Shared.Prototypes;
+using static Content.Client._CorvaxNext.CartridgeLoader.Cartridges.CrimeAssistUi;
+
+namespace Content.Client._CorvaxNext.CartridgeLoader.Cartridges
+{
+ [GenerateTypedNameReferences]
+ public sealed partial class CrimeAssistUiFragment : BoxContainer
+ {
+ [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+ [Dependency] private readonly IResourceCache _resourceCache = default!;
+
+ public event Action? OnSync;
+
+ private List? _pages;
+ private CrimeAssistPage _currentPage;
+ private CrimeAssistPage _mainMenuPage;
+
+ public CrimeAssistUiFragment()
+ {
+ RobustXamlLoader.Load(this);
+ IoCManager.InjectDependencies(this);
+
+ Orientation = LayoutOrientation.Vertical;
+ HorizontalExpand = true;
+ VerticalExpand = true;
+
+ StartButton.Text = Loc.GetString("crime-assist-start-button");
+ StartButton.ToolTip = Loc.GetString("crime-assist-start-button-tooltip");
+
+ HomeButton.Text = Loc.GetString("crime-assist-home-button");
+ HomeButton.ToolTip = Loc.GetString("crime-assist-home-button-tooltip");
+
+ YesButton.Text = Loc.GetString("crime-assist-yes-button");
+ YesButton.ToolTip = Loc.GetString("crime-assist-yes-button-tooltip");
+
+ NoButton.Text = Loc.GetString("crime-assist-no-button");
+ NoButton.ToolTip = Loc.GetString("crime-assist-no-button-tooltip");
+
+ // Load all pages
+ _pages = new List(_prototypeManager.EnumeratePrototypes());
+
+ // Initialize the main menu page
+ _mainMenuPage = FindPageById("mainmenu");
+ _currentPage = _mainMenuPage;
+
+ UpdateUI(_currentPage);
+
+ // Set up button actions
+ StartButton.OnPressed += _ =>
+ {
+ var startTarget = _mainMenuPage.OnStart;
+ if (startTarget != null) UpdateUI(FindPageById(startTarget));
+ };
+
+ HomeButton.OnPressed += _ => UpdateUI(_mainMenuPage);
+ YesButton.OnPressed += _ => AdvanceState(_currentPage, true);
+ NoButton.OnPressed += _ => AdvanceState(_currentPage, false);
+ }
+
+ public void AdvanceState(CrimeAssistPage currentPage, bool yesPressed)
+ {
+ var nextId = yesPressed ? currentPage.OnYes : currentPage.OnNo;
+ if (nextId != null)
+ {
+ var nextPage = FindPageById(nextId);
+ UpdateUI(nextPage);
+ }
+ }
+
+ public void UpdateUI(CrimeAssistPage page)
+ {
+ _currentPage = page;
+ bool isResult = page.LocKeyPunishment != null;
+
+ StartButton.Visible = page.OnStart != null;
+ YesButton.Visible = page.OnYes != null;
+ NoButton.Visible = page.OnNo != null;
+ HomeButton.Visible = page.OnStart == null;
+ Explanation.Visible = page.OnStart == null;
+
+ Subtitle.Visible = page.LocKeySeverity != null;
+ Punishment.Visible = page.LocKeyPunishment != null;
+
+ if (!isResult)
+ {
+ UpdateAsQuestionPage(page);
+ }
+ else
+ {
+ UpdateAsResultPage(page);
+ }
+ }
+
+ private void UpdateAsQuestionPage(CrimeAssistPage page)
+ {
+ var baseString = page.LocKey != null ? Loc.GetString(page.LocKey) : string.Empty;
+ string questionMarkup = $"\n[font size=15]{baseString}[/font]";
+
+ if (questionMarkup.ToLower().Contains("sophont"))
+ {
+ string sophontExplanation = Loc.GetString("crime-assist-sophont-explanation");
+ questionMarkup += $"\n[font size=8][color=#999999]{sophontExplanation}[/color][/font]";
+ }
+
+ Title.SetMarkup(questionMarkup);
+ Subtitle.SetMarkup(string.Empty);
+ Explanation.SetMarkup(string.Empty);
+ Punishment.SetMarkup(string.Empty);
+ }
+
+ private void UpdateAsResultPage(CrimeAssistPage page)
+ {
+ var severityColor = GetSeverityColor(page.LocKeySeverity);
+
+ var titleString = page.LocKeyTitle != null ? Loc.GetString(page.LocKeyTitle) : string.Empty;
+ var severityString = page.LocKeySeverity != null ? Loc.GetString(page.LocKeySeverity) : string.Empty;
+ var descriptionString = page.LocKeyDescription != null ? Loc.GetString(page.LocKeyDescription) : string.Empty;
+ var punishmentString = page.LocKeyPunishment != null ? Loc.GetString(page.LocKeyPunishment) : string.Empty;
+
+ Title.SetMarkup($"\n[bold][font size=13][color=#a4885c]{titleString}[/color][/font][/bold]");
+ Subtitle.SetMarkup($"\n[font size=13][color={severityColor}]{severityString}[/color][/font]");
+ Explanation.SetMarkup($"\n[title]{descriptionString}[/title]\n");
+ Punishment.SetMarkup($"[bold][font size=13]{punishmentString}[/font][/bold]");
+ }
+
+ private CrimeAssistPage FindPageById(string id)
+ {
+ if (_pages == null)
+ throw new InvalidOperationException("Pages not initialized.");
+
+ var page = _pages.Find(o => o.ID == id);
+ if (page == null)
+ throw new KeyNotFoundException($"No CrimeAssistPage found with ID: {id}");
+
+ return page;
+ }
+
+ private string GetSeverityColor(string? severityKey)
+ {
+ return severityKey switch
+ {
+ "crime-assist-crime-type-corporate" => "#0044cc",
+ "crime-assist-crime-type-personal" => "#cc0000",
+ "crime-assist-crime-type-property" => "#ffaa00",
+ "crime-assist-crime-type-public-order" => "#008000",
+ _ => "#ff00ff"
+ };
+ }
+ }
+}
diff --git a/Content.Server/_CorvaxNext/CartridgeLoader/CrimeAssistCartridgeComponent.cs b/Content.Server/_CorvaxNext/CartridgeLoader/CrimeAssistCartridgeComponent.cs
new file mode 100644
index 00000000000..446fedb7f5b
--- /dev/null
+++ b/Content.Server/_CorvaxNext/CartridgeLoader/CrimeAssistCartridgeComponent.cs
@@ -0,0 +1,5 @@
+namespace Content.Server._CorvaxNext.CartridgeLoader.Cartridges;
+
+[RegisterComponent]
+public sealed partial class CrimeAssistCartridgeComponent : Component
+{ }
diff --git a/Content.Server/_CorvaxNext/CartridgeLoader/CrimeAssistCartridgeSystem.cs b/Content.Server/_CorvaxNext/CartridgeLoader/CrimeAssistCartridgeSystem.cs
new file mode 100644
index 00000000000..a634bdb8278
--- /dev/null
+++ b/Content.Server/_CorvaxNext/CartridgeLoader/CrimeAssistCartridgeSystem.cs
@@ -0,0 +1,16 @@
+using Content.Shared.CartridgeLoader;
+using Content.Server._CorvaxNext.CartridgeLoader;
+using Content.Server.CartridgeLoader.Cartridges;
+using Content.Server.CartridgeLoader;
+
+namespace Content.Server._CorvaxNext.CartridgeLoader.Cartridges;
+
+public sealed class CrimeAssistCartridgeSystem : EntitySystem
+{
+ [Dependency] private readonly CartridgeLoaderSystem? _cartridgeLoaderSystem = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+ }
+}
diff --git a/Content.Shared/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistPage.cs b/Content.Shared/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistPage.cs
new file mode 100644
index 00000000000..f96950ad5f5
--- /dev/null
+++ b/Content.Shared/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistPage.cs
@@ -0,0 +1,35 @@
+using Robust.Shared.Prototypes;
+
+namespace Content.Shared._CorvaxNext.CartridgeLoader.Cartridges;
+
+[Prototype("crimeAssistPage")]
+public sealed partial class CrimeAssistPage : IPrototype
+{
+ [ViewVariables]
+ [IdDataField]
+ public string ID { get; private set; } = "";
+
+ [DataField("onStart")]
+ public string? OnStart { get; private set; }
+
+ [DataField("locKey")]
+ public string? LocKey { get; private set; }
+
+ [DataField("onYes")]
+ public string? OnYes { get; private set; }
+
+ [DataField("onNo")]
+ public string? OnNo { get; private set; }
+
+ [DataField("locKeyTitle")]
+ public string? LocKeyTitle { get; private set; }
+
+ [DataField("locKeyDescription")]
+ public string? LocKeyDescription { get; private set; }
+
+ [DataField("locKeySeverity")]
+ public string? LocKeySeverity { get; private set; }
+
+ [DataField("locKeyPunishment")]
+ public string? LocKeyPunishment { get; private set; }
+}
diff --git a/Content.Shared/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUiState.cs b/Content.Shared/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUiState.cs
new file mode 100644
index 00000000000..210ace7f9f7
--- /dev/null
+++ b/Content.Shared/_CorvaxNext/CartridgeLoader/Cartridges/CrimeAssistUiState.cs
@@ -0,0 +1,18 @@
+using Content.Shared.CartridgeLoader;
+using Robust.Shared.Serialization;
+
+namespace Content.Shared._CorvaxNext.CartridgeLoader.Cartridges;
+
+[Serializable, NetSerializable]
+public sealed class CrimeAssistUiState : BoundUserInterfaceState
+{
+ public CrimeAssistUiState()
+ { }
+}
+
+[Serializable, NetSerializable]
+public sealed class CrimeAssistSyncMessageEvent : CartridgeMessageEvent
+{
+ public CrimeAssistSyncMessageEvent()
+ { }
+}
diff --git a/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/base.ftl b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/base.ftl
new file mode 100644
index 00000000000..87d9e2af37a
--- /dev/null
+++ b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/base.ftl
@@ -0,0 +1,96 @@
+# Основа
+crime-assist-mainmenu = Добро пожаловать в КорЗак Про!
+crime-assist-program-name = КорЗак Про
+crime-assist-yes-button = Да
+crime-assist-yes-button-tooltip = Подтвердить утверждение.
+crime-assist-no-button = Нет
+crime-assist-no-button-tooltip = Отклонить утверждение.
+crime-assist-start-button = Начать
+crime-assist-start-button-tooltip = Начать опросник.
+crime-assist-home-button = На главную
+crime-assist-home-button-tooltip = Вернуться на главную страницу.
+
+
+# Типы преступлений
+crime-assist-crime-type-corporate = Преступление против корпорации.
+crime-assist-crime-type-personal = Преступление против личности.
+crime-assist-crime-type-property = Экономическое преступление.
+crime-assist-crime-type-public-order = Преступление против безопасности и порядка.
+
+# База
+crime-assist-question-against-person = Имело ли место деяние, причинившее вред жизни, здоровью, свободе, чести, достоинству или иной личной неприкосновенности члена экипажа либо гостя станции?
+crime-assist-question-against-property = Совершалось ли правонарушение, повлекшее ущерб собственности, материальным активам или экономическим интересам NanoTrasen, включая хищение, повреждение либо уничтожение имущества?
+crime-assist-question-against-corporation = Были ли зафиксированы действия, направленные против интересов корпорации NanoTrasen, её руководящих органов, правопорядка, трудовой дисциплины либо принципов честной конкуренции?
+crime-assist-question-against-public-order = Имело ли место нарушение общественного порядка, безопасности либо правил допуска, включая незаконное владение запрещённым оборудованием, веществами или оружием?
+
+# Преступления против личности
+crime-assist-question-person-damage = Причинялся ли физический вред разумному существу?
+crime-assist-question-person-damage-insignificant = Был ли это незначительный физический вред, не требующий вмешательства медицинского персонала?
+crime-assist-question-person-damage-medical-needed = Имел ли место физический вред, не угрожающий жизни пострадавшего, но требующий оказания медицинской помощи?
+crime-assist-question-person-damage-life-threatening = Был ли причинён физический вред, создающий угрозу для жизни (включая критическое состояние или утрату возможности самостоятельного дыхания), но не приведший к смерти?
+crime-assist-question-person-damage-resulted-in-death = Привёл ли причинённый вред к смерти разумного существа?
+crime-assist-question-person-body-destroyed = Было ли тело уничтожено до состояния, исключающего возможность клонирования или реанимации?
+crime-assist-question-person-offense = Совершались ли действия, унижающие честь и достоинство разумного существа (включая оскорбления, клевету или нарушение личных границ)?
+crime-assist-question-person-false-testimony = Давались ли заведомо ложные показания, способствующие неправомерному привлечению невиновного лица к ответственности?
+crime-assist-question-person-unlawful-restraint = Имело ли место незаконное ограничение свободы разумного существа, включая захват, насильственное перемещение или удержание против воли?
+
+# Экономические преступления
+crime-assist-question-property-theft-occurred = Имело ли место хищение, то есть изъятие имущества без согласия его владельца?
+crime-assist-question-property-theft-petty = Произошло ли хищение предметов общего пользования или домашних животных?
+crime-assist-question-property-theft-standard = Совершалось ли хищение личного имущества членов экипажа или имущества подразделений станции?
+crime-assist-question-property-theft-rare = Было ли похищено редкое или важное для функционирования станции имущество?
+crime-assist-question-property-theft-open = Имел ли место открытое хищение имущества в присутствии владельца?
+crime-assist-question-property-theft-armed = Сопровождалось ли хищение применением насилия или угрозой его применения?
+crime-assist-question-property-theft-valuable = Привело ли хищение к утрате особо ценных объектов станции, таких как ID-карта капитана или критически важное оборудование?
+crime-assist-question-property-damage = Было ли зафиксировано повреждение, порча или уничтожение имущества?
+crime-assist-question-property-damage-common = Повреждались ли предметы общего пользования, личные вещи, имущество подразделений станции или домашние животные?
+crime-assist-question-property-damage-valuable = Были ли повреждены редкие или ценные объекты, такие как корпуса боргов или синтетиков?
+crime-assist-question-property-destruction-common = Было ли полностью уничтожено имущество общего пользования, личные вещи, имущество подразделений станции или домашние животные?
+crime-assist-question-property-destruction-valuable = Были ли полностью уничтожены редкие или ценные объекты станции?
+crime-assist-question-property-destruction-critical = Имело ли место уничтожение особо ценных или критически важных для функционирования станции объектов, таких как ID-карта капитана или оборудование двигателей?
+
+# Преступления против корпорации
+crime-assist-question-corporation-authority-undermined = Зафиксированы ли действия, направленные на подрыв авторитета NanoTrasen либо сопротивление её законным требованиям?
+crime-assist-question-corporation-legitimate-order-refusal = Имел ли место отказ от исполнения законных распоряжений сотрудников корпорации NanoTrasen?
+crime-assist-question-corporation-disrespect-symbols = Проявлялось ли публичное неуважение к символам власти или корпоративной символике NanoTrasen?
+crime-assist-question-corporation-unauthorized-strike = Фиксировались ли несанкционированные действия, направленные на организацию или поддержку забастовок?
+crime-assist-question-corporation-armed-rebellion = Имело ли место вооружённое выступление либо заговор, направленные против интересов и порядка корпорации NanoTrasen?
+crime-assist-question-corporation-crisis-disobedience = Зафиксировано ли неподчинение законным требованиям квалифицированного персонала корпорации в условиях Чрезвычайной Ситуации?
+crime-assist-question-corporation-justice-violation = Имели ли место правонарушения, направленные на подрыв системы правосудия NanoTrasen?
+crime-assist-question-corporation-disrespect-court = Проявлялось ли неуважение к суду, его участникам или установленным правилам судебного разбирательства?
+crime-assist-question-corporation-concealment-minor = Совершались ли действия по укрывательству преступления без предварительного сговора?
+crime-assist-question-corporation-concealment-major = Имелись ли действия, связанные с укрывательством особо тяжкого либо критически важного правонарушения?
+crime-assist-question-corporation-escape-temporary = Фиксировался ли факт побега из места содержания под стражей?
+crime-assist-question-corporation-ignored-court-order = Игнорировались ли постановления суда либо их исполнение?
+crime-assist-question-corporation-escape-permanent = Произошёл ли побег из места пожизненного заключения?
+crime-assist-question-corporation-unfair-competition = Имели ли место действия, нарушающие принципы честной конкуренции?
+crime-assist-question-corporation-forbidden-org-propaganda = Была ли выявлена пропаганда или демонстрация символов, связанных с запрещёнными организациями?
+crime-assist-question-corporation-department-sabotage = Имелись ли действия, направленные на саботаж, препятствующий работе подразделений или функциональности станции?
+crime-assist-question-corporation-criminal-group = Обнаружена ли принадлежность лица к запрещённым корпорацией NanoTrasen группировкам?
+crime-assist-question-corporation-major-sabotage = Зафиксирован ли факт крупного саботажа, приведшего к значительным повреждениям станции или её инфраструктуры?
+crime-assist-question-corporation-professional = Имело ли место нарушение профессиональных обязанностей, сопряжённое с нарушением статей Корпоративного Закона?
+crime-assist-question-corporation-special-orders-failure = Имело ли место неисполнение особых распоряжений высшего командования, включая отказ от сдачи рабочего снаряжения или доступов?
+crime-assist-question-corporation-negligence = Фиксировалось ли небрежное исполнение профессиональных обязанностей и нарушение статей Корпоративного Закона, повлекшее ущерб?
+crime-assist-question-corporation-gross-negligence = Было ли это грубое нарушение, повлекшее за собой значительный ущерб?
+crime-assist-question-corporation-vigilantism = Выявлено ли незаконное присвоение полномочий, свойственных должностным лицам?
+
+# Преступления против общественной безопасности и общественного порядка
+crime-assist-question-public-order-violation = Был ли зафиксирован факт нарушения общественного порядка или общественной безопасности?
+crime-assist-question-public-order-hooliganism = Имело ли место поведение, выражающее явное неуважение к обществу, включая хулиганство, порчу имущества или нецензурные действия?
+crime-assist-question-public-order-fraud = Имело ли место незаконное получение имущества или прав путём обмана либо злоупотребления доверием, включая подделку документов или выдачу себя за другое лицо?
+crime-assist-question-public-order-major-fraud = Было ли незаконное получение имущества связано с редкими или важными для станции объектами?
+crime-assist-question-public-order-terror-act = Были ли зафиксированы действия, направленные на дестабилизацию власти, захват заложников или причинение вреда станции?
+crime-assist-question-public-order-territorial-violation = Имели ли место нарушения территориального режима?
+crime-assist-question-public-order-unauthorized-area = Проникал ли субъект в технические помещения или космическое пространство без законных оснований?
+crime-assist-question-public-order-unauthorized-department = Находился ли субъект в закрытых отделах без соответствующего разрешения?
+crime-assist-question-public-order-unauthorized-strategic = Находился ли субъект без разрешения в стратегически важных зонах, таких как мостик или серверная?
+crime-assist-question-public-order-unauthorized-secured = Проникал ли субъект без разрешения в охраняемые стратегические объекты, такие как капитанская каюта или арсенал?
+crime-assist-question-public-order-unauthorized-evac = Предпринимались ли попытки эвакуации с объекта без санкции командования или утверждённых протоколов?
+crime-assist-question-public-order-unauthorized-on-nt-property = Находился ли субъект на территории, принадлежащей NanoTrasen, без должного разрешения?
+crime-assist-question-public-order-unauthorized-possession = Было ли обнаружено незаконное владение запрещёнными предметами, веществами или оружием?
+crime-assist-question-public-order-unauthorized-equipment = Было ли зафиксировано несанкционированное владение служебным снаряжением или лекарственными средствами с опасными побочными эффектами?
+crime-assist-question-public-order-unauthorized-dangerous-item = Было ли выявлено незаконное владение опасными предметами, средствами самообороны или самодельным оружием?
+crime-assist-question-public-order-unauthorized-controlled-item = Было ли обнаружено хранение или распространение предметов, подпадающих под категорию контрабанды?
+crime-assist-question-public-order-unauthorized-substance = Было ли зафиксировано производство, хранение, распространение или применение запрещённых веществ?
+crime-assist-question-public-order-unauthorized-weapon = Было ли выявлено владение оружием без должного статуса или разрешения?
+crime-assist-question-public-order-unauthorized-enemy-item = Было ли обнаружено незаконное владение предметами, идентифицированными как вражеские или запрещённые NanoTrasen?
diff --git a/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/corporation-laws.ftl b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/corporation-laws.ftl
new file mode 100644
index 00000000000..9c19da24736
--- /dev/null
+++ b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/corporation-laws.ftl
@@ -0,0 +1,77 @@
+# Раздел 1. Преступления против корпорации
+
+crime-assist-crime-corporation-insulting-authority-symbols = Статья 111: Оскорбление символов власти
+crime-assist-crime-punishment-corporation-insulting-authority-symbols = Наказание: 5 минут
+crime-assist-crime-detail-corporation-insulting-authority-symbols = Проявление неуважения к символам корпоративной власти и символике NanoTrasen.
+
+crime-assist-crime-corporation-resisting-authorities = Статья 112: Сопротивление органам власти
+crime-assist-crime-punishment-corporation-resisting-authorities = Наказание: 10 минут
+crime-assist-crime-detail-corporation-resisting-authorities = Неподчинение законным требованиям представителей власти и несоблюдение установленных норм поведения.
+
+crime-assist-crime-corporation-strike = Статья 113: Забастовка
+crime-assist-crime-punishment-corporation-strike = Наказание: 15 минут
+crime-assist-crime-detail-corporation-strike = Несанкционированное прекращение работы и призывы к забастовке с целью давления на руководство.
+
+crime-assist-crime-corporation-noncompliance-in-emergency = Статья 115: Неподчинение в ЧС
+crime-assist-crime-punishment-corporation-noncompliance-in-emergency = Наказание: Пожизненное заключение
+crime-assist-crime-detail-corporation-noncompliance-in-emergency = Отказ от исполнения законных требований уполномоченного персонала в условиях чрезвычайной ситуации.
+
+crime-assist-crime-corporation-mutiny = Статья 116: Мятеж
+crime-assist-crime-punishment-corporation-mutiny = Наказание: Казнь
+crime-assist-crime-detail-corporation-mutiny = Организованное вооруженное выступление против законной власти.
+
+crime-assist-crime-corporation-contempt-of-court = Статья 121: Неуважение к суду
+crime-assist-crime-punishment-corporation-contempt-of-court = Наказание: 5 минут
+crime-assist-crime-detail-corporation-contempt-of-court = Неуважительное поведение в суде и невыполнение законных требований судьи.
+
+crime-assist-crime-corporation-concealing-crime = Статья 122: Сокрытие преступления
+crime-assist-crime-punishment-corporation-concealing-crime = Наказание: 10 минут
+crime-assist-crime-detail-corporation-concealing-crime = Сокрытие факта совершения правонарушений легкой, средней или тяжкой степени.
+
+crime-assist-crime-corporation-escape-confinement = Статья 123: Побег из места заключения
+crime-assist-crime-punishment-corporation-escape-confinement = Наказание: 15 минут
+crime-assist-crime-detail-corporation-escape-confinement = Самовольное покидание места временного заключения.
+
+crime-assist-crime-corporation-failure-to-execute-court-ruling = Статья 124: Неисполнение приговора суда
+crime-assist-crime-punishment-corporation-failure-to-execute-court-ruling = Наказание: 25 минут
+crime-assist-crime-detail-corporation-failure-to-execute-court-ruling = Умышленное неисполнение или ненадлежащее исполнение судебного решения.
+
+crime-assist-crime-corporation-concealing-major-crime = Статья 125: Сокрытие крупного преступления
+crime-assist-crime-punishment-corporation-concealing-major-crime = Наказание: Пожизненное заключение
+crime-assist-crime-detail-corporation-concealing-major-crime = Сокрытие факта совершения особо тяжких или критических правонарушений.
+
+crime-assist-crime-corporation-escape-life-sentencing = Статья 126: Побег из места пожизненного заключения
+crime-assist-crime-punishment-corporation-escape-life-sentencing = Наказание: Казнь
+crime-assist-crime-detail-corporation-escape-life-sentencing = Самовольное покидание места пожизненного заключения.
+
+crime-assist-crime-corporation-banned-org-propaganda = Статья 131: Пропаганда запрещённых организаций
+crime-assist-crime-punishment-corporation-banned-org-propaganda = Наказание: 5 минут
+crime-assist-crime-detail-corporation-banned-org-propaganda = Распространение материалов и символики запрещенных организаций.
+
+crime-assist-crime-corporation-sabotage = Статья 133: Саботаж
+crime-assist-crime-punishment-corporation-sabotage = Наказание: 15 минут
+crime-assist-crime-detail-corporation-sabotage = Умышленное создание помех в работе отдела или частичное нарушение работоспособности станции.
+
+crime-assist-crime-corporation-criminal-group-membership = Статья 135: Членство в преступных группировках
+crime-assist-crime-punishment-corporation-criminal-group-membership = Наказание: Пожизненное заключение
+crime-assist-crime-detail-corporation-criminal-group-membership = Участие в деятельности организаций, запрещенных корпорацией NanoTrasen.
+
+crime-assist-crime-corporation-grand-sabotage = Статья 136: Крупный саботаж
+crime-assist-crime-punishment-corporation-grand-sabotage = Наказание: Казнь
+crime-assist-crime-detail-corporation-grand-sabotage = Причинение критического ущерба функционированию станции.
+
+crime-assist-crime-corporation-special-orders-failure = Статья 141: Неисполнение особых распоряжений
+crime-assist-crime-punishment-corporation-special-orders-failure = Наказание: 5 минут
+crime-assist-crime-detail-corporation-special-orders-failure = Неисполнение особых распоряжений руководства и отказ от сдачи служебных полномочий.
+
+crime-assist-crime-corporation-negligence = Статья 142: Халатность
+crime-assist-crime-punishment-corporation-negligence = Наказание: 10 минут
+crime-assist-crime-detail-corporation-negligence = Ненадлежащее исполнение служебных обязанностей, повлекшее незначительный ущерб.
+
+crime-assist-crime-corporation-gross-negligence = Статья 144: Грубая халатность
+crime-assist-crime-punishment-corporation-gross-negligence = Наказание: 25 минут
+crime-assist-crime-detail-corporation-gross-negligence = Ненадлежащее исполнение служебных обязанностей, повлекшее значительный ущерб.
+
+crime-assist-crime-corporation-vigilantism = Статья 145: Самоуправство
+crime-assist-crime-punishment-corporation-vigilantism = Наказание: Пожизненное заключение
+crime-assist-crime-detail-corporation-vigilantism = Незаконное присвоение должностных полномочий.
diff --git a/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/person-laws.ftl b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/person-laws.ftl
new file mode 100644
index 00000000000..4421a95df61
--- /dev/null
+++ b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/person-laws.ftl
@@ -0,0 +1,33 @@
+# Раздел 2. Преступления против личности
+
+crime-assist-crime-person-minor-bodily-harm = Статья 212: Нанесение легких телесных повреждений
+crime-assist-crime-punishment-person-minor-bodily-harm = Наказание: 10 минут
+crime-assist-crime-detail-person-minor-bodily-harm = Причинение легкого вреда здоровью, не представляющего угрозы для жизни и не требующего медицинского вмешательства.
+
+crime-assist-crime-person-moderate-bodily-harm = Статья 213: Причинение среднего вреда здоровью
+crime-assist-crime-punishment-person-moderate-bodily-harm = Наказание: 15 минут
+crime-assist-crime-detail-person-moderate-bodily-harm = Причинение вреда здоровью средней тяжести, требующего медицинского вмешательства, включая потерю сознания.
+
+crime-assist-crime-person-severe-bodily-harm = Статья 214: Причинение тяжкого вреда здоровью
+crime-assist-crime-punishment-person-severe-bodily-harm = Наказание: 25 минут
+crime-assist-crime-detail-person-severe-bodily-harm = Причинение тяжкого вреда здоровью, представляющего угрозу для жизни и требующего срочного медицинского вмешательства.
+
+crime-assist-crime-person-murder = Статья 215: Причинение смерти
+crime-assist-crime-punishment-person-murder = Наказание: Пожизненное заключение
+crime-assist-crime-detail-person-murder = Противоправное деяние, повлекшее смерть разумного существа, включая препятствование его спасению.
+
+crime-assist-crime-person-body-destruction = Статья 216: Уничтожение тела
+crime-assist-crime-punishment-person-body-destruction = Наказание: Казнь
+crime-assist-crime-detail-person-body-destruction = Действия, приведшие к полному уничтожению тела разумного существа без возможности восстановления.
+
+crime-assist-crime-person-insult-slurs = Статья 221: Оскорбление, клевета
+crime-assist-crime-punishment-person-insult-slurs = Наказание: 5 минут
+crime-assist-crime-detail-person-insult-slurs = Умышленное унижение чести и достоинства личности, включая преследование и нарушение неприкосновенности частной жизни.
+
+crime-assist-crime-person-perjury = Статья 223: Дача ложных показаний
+crime-assist-crime-punishment-person-perjury = Наказание: 15 минут
+crime-assist-crime-detail-person-perjury = Предоставление заведомо ложных показаний, способных привести к необоснованному привлечению к ответственности.
+
+crime-assist-crime-person-unlawful-restraint = Статья 224: Незаконное ограничение свободы
+crime-assist-crime-punishment-person-unlawful-restraint = Наказание: 25 минут
+crime-assist-crime-detail-person-unlawful-restraint = Противоправное лишение свободы путем захвата, перемещения и удержания разумного существа против его воли.
diff --git a/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/property-laws.ftl b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/property-laws.ftl
new file mode 100644
index 00000000000..dc0381681e0
--- /dev/null
+++ b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/property-laws.ftl
@@ -0,0 +1,45 @@
+# Раздел 3. Экономические преступления
+
+crime-assist-crime-property-petty-theft = Статья 311: Мелкая кража
+crime-assist-crime-punishment-property-petty-theft = Наказание: 5 минут
+crime-assist-crime-detail-property-petty-theft = Тайное хищение имущества общего пользования или домашних животных.
+
+crime-assist-crime-property-theft = Статья 312: Кража
+crime-assist-crime-punishment-property-theft = Наказание: 10 минут
+crime-assist-crime-detail-property-theft = Тайное хищение личных вещей или имущества отделов станции.
+
+crime-assist-crime-property-robbery = Статья 313: Грабеж
+crime-assist-crime-punishment-property-robbery = Наказание: 15 минут
+crime-assist-crime-detail-property-robbery = Открытое хищение имущества в присутствии владельца или посторонних лиц.
+
+crime-assist-crime-property-grand-theft = Статья 314: Крупное хищение
+crime-assist-crime-punishment-property-grand-theft = Наказание: 25 минут
+crime-assist-crime-detail-property-grand-theft = Хищение редкого или критически важного для функционирования отделов имущества.
+
+crime-assist-crime-property-armed-robbery = Статья 315: Разбой
+crime-assist-crime-punishment-property-armed-robbery = Наказание: Пожизненное заключение
+crime-assist-crime-detail-property-armed-robbery = Хищение имущества с применением насилия или угрозой его применения.
+
+crime-assist-crime-property-valuable-theft = Статья 316: Хищение особо ценного имущества
+crime-assist-crime-punishment-property-valuable-theft = Наказание: Казнь
+crime-assist-crime-detail-property-valuable-theft = Хищение особо ценного или критически важного для функционирования станции имущества.
+
+crime-assist-crime-property-property-damage = Статья 321: Порча имущества
+crime-assist-crime-punishment-property-property-damage = Наказание: 5 минут
+crime-assist-crime-detail-property-property-damage = Причинение повреждений имуществу общего пользования, личным вещам или имуществу отделов.
+
+crime-assist-crime-property-valuable-property-damage = Статья 322: Порча ценного имущества
+crime-assist-crime-punishment-property-valuable-property-damage = Наказание: 10 минут
+crime-assist-crime-detail-property-valuable-property-damage = Повреждение ценного имущества, включая синтетиков и боргов.
+
+crime-assist-crime-property-property-destruction = Статья 323: Уничтожение имущества
+crime-assist-crime-punishment-property-property-destruction = Наказание: 15 минут
+crime-assist-crime-detail-property-property-destruction = Полное уничтожение имущества общего пользования, личных вещей или имущества отделов.
+
+crime-assist-crime-property-valuable-property-destruction = Статья 324: Уничтожение ценного имущества
+crime-assist-crime-punishment-property-valuable-property-destruction = Наказание: 25 минут
+crime-assist-crime-detail-property-valuable-property-destruction = Уничтожение или незаконная модификация синтетиков и другого ценного имущества.
+
+crime-assist-crime-property-critical-property-destruction = Статья 326: Уничтожение особо ценного имущества
+crime-assist-crime-punishment-property-critical-property-destruction = Наказание: Казнь
+crime-assist-crime-detail-property-critical-property-destruction = Уничтожение критически важного для функционирования станции имущества, причинение смерти Иану.
diff --git a/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/public-order-laws.ftl b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/public-order-laws.ftl
new file mode 100644
index 00000000000..1c81fce2aaa
--- /dev/null
+++ b/Resources/Locale/ru-RU/_corvaxnext/cartridge-loader/crimeassist/public-order-laws.ftl
@@ -0,0 +1,65 @@
+# Раздел 4. Преступления против общественной безопасности и порядка
+
+crime-assist-crime-public-order-hooliganism = Статья 411: Хулиганство
+crime-assist-crime-punishment-public-order-hooliganism = Наказание: 5 минут
+crime-assist-crime-detail-public-order-hooliganism = Умышленное нарушение общественного порядка, выражающее явное неуважение к обществу.
+
+crime-assist-crime-public-order-fraud = Статья 413: Мошенничество
+crime-assist-crime-punishment-public-order-fraud = Наказание: 15 минут
+crime-assist-crime-detail-public-order-fraud = Приобретение прав на имущество путем обмана, подделка документов, незаконное использование закрытых каналов связи.
+
+crime-assist-crime-public-order-grand-fraud = Статья 415: Крупное мошенничество
+crime-assist-crime-punishment-public-order-grand-fraud = Наказание: Пожизненное заключение
+crime-assist-crime-detail-public-order-grand-fraud = Хищение особо ценного имущества путем обмана, подделка документов высшего руководства.
+
+crime-assist-crime-public-order-terrorism = Статья 416: Террористический акт
+crime-assist-crime-punishment-public-order-terrorism = Наказание: Казнь
+crime-assist-crime-detail-public-order-terrorism = Действия, направленные на дестабилизацию органов власти или принуждение к принятию решений.
+
+crime-assist-crime-public-order-unauthorized-tech-orbit-access = Статья 421: Необоснованное посещение технических помещений, космоса
+crime-assist-crime-punishment-public-order-unauthorized-tech-orbit-access = Наказание: 5 минут
+crime-assist-crime-detail-public-order-unauthorized-tech-orbit-access = Несанкционированное пребывание в технических помещениях или космическом пространстве.
+
+crime-assist-crime-public-order-department-trespass = Статья 422: Проникновение на территорию отдела
+crime-assist-crime-punishment-public-order-department-trespass = Наказание: 10 минут
+crime-assist-crime-detail-public-order-department-trespass = Несанкционированное проникновение на территорию закрытого отдела.
+
+crime-assist-crime-public-order-strategic-point-trespass = Статья 423: Проникновение в стратегическую точку
+crime-assist-crime-punishment-public-order-strategic-point-trespass = Наказание: 15 минут
+crime-assist-crime-detail-public-order-strategic-point-trespass = Несанкционированное проникновение на территорию стратегического объекта.
+
+crime-assist-crime-public-order-secured-point-trespass = Статья 424: Проникновение в защищенную стратегическую точку
+crime-assist-crime-punishment-public-order-secured-point-trespass = Наказание: 25 минут
+crime-assist-crime-detail-public-order-secured-point-trespass = Несанкционированное проникновение на территорию особо охраняемого стратегического объекта.
+
+crime-assist-crime-public-order-illegal-evacuation = Статья 425: Незаконная эвакуация с территории комплекса
+crime-assist-crime-punishment-public-order-illegal-evacuation = Наказание: Пожизненное заключение
+crime-assist-crime-detail-public-order-illegal-evacuation = Несанкционированное покидание территории объекта NanoTrasen.
+
+crime-assist-crime-public-order-nt-property-trespass = Статья 426: Проникновение на территорию объекта NanoTrasen
+crime-assist-crime-punishment-public-order-nt-property-trespass = Наказание: Казнь
+crime-assist-crime-detail-public-order-nt-property-trespass = Незаконное проникновение на объекты корпорации NanoTrasen.
+
+crime-assist-crime-public-order-equip-abuse = Статья 431: Злоупотребление экипировкой, лекарствами
+crime-assist-crime-punishment-public-order-equip-abuse = Наказание: 5 минут
+crime-assist-crime-detail-public-order-equip-abuse = Неправомерное владение служебным снаряжением или медицинскими препаратами.
+
+crime-assist-crime-public-order-illegal-weapon-possession = Статья 432: Незаконное владение опасным инструментом
+crime-assist-crime-punishment-public-order-illegal-weapon-possession = Наказание: 10 минут
+crime-assist-crime-detail-public-order-illegal-weapon-possession = Незаконное владение опасными предметами или средствами самообороны.
+
+crime-assist-crime-public-order-contraband-possession = Статья 433: Незаконное владение регулируемым снаряжением
+crime-assist-crime-punishment-public-order-contraband-possession = Наказание: 15 минут
+crime-assist-crime-detail-public-order-contraband-possession = Хранение и распространение предметов, имеющих признаки контрабанды.
+
+crime-assist-crime-public-order-illegal-substances-possession = Статья 434: Незаконное владение регулируемыми веществами
+crime-assist-crime-punishment-public-order-illegal-substances-possession = Наказание: 25 минут
+crime-assist-crime-detail-public-order-illegal-substances-possession = Производство, хранение и распространение запрещенных веществ.
+
+crime-assist-crime-public-order-unauthorized-arm-possession = Статья 435: Незаконное владение оружием
+crime-assist-crime-punishment-public-order-unauthorized-arm-possession = Наказание: Пожизненное заключение
+crime-assist-crime-detail-public-order-unauthorized-arm-possession = Незаконное владение боевым снаряжением или оружием.
+
+crime-assist-crime-public-order-hostile-gear-possession = Статья 436: Незаконное владение вражеским снаряжением
+crime-assist-crime-punishment-public-order-hostile-gear-possession = Наказание: Казнь
+crime-assist-crime-detail-public-order-hostile-gear-possession = Владение снаряжением, классифицированным как вражеское.
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_corvaxnext/entities/objects/devices/cartriges.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_corvaxnext/entities/objects/devices/cartriges.ftl
index 8949b842190..2d98eb112d8 100644
--- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_corvaxnext/entities/objects/devices/cartriges.ftl
+++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_corvaxnext/entities/objects/devices/cartriges.ftl
@@ -1,4 +1,6 @@
ent-SecWatchCartridge = картридж "око сб"
- .desc = Картридж, отслеживающий статус разыскиваемых службой безопасности лиц.
+ .desc = Программа для отслеживания статуса разыскиваемых службой безопасности лиц.
+ent-CrimeAssistCartridge = картридж "корзак про"
+ .desc = Программа для помощи начинающим сотрудникам службы безопасности.
ent-NanoChatCartridge = картридж NanoChat
.desc = Для просто чилловых парней, которые любят початиться.
diff --git a/Resources/Prototypes/Corvax/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Corvax/Entities/Objects/Devices/pda.yml
index 74c880d689a..25b49622f72 100644
--- a/Resources/Prototypes/Corvax/Entities/Objects/Devices/pda.yml
+++ b/Resources/Prototypes/Corvax/Entities/Objects/Devices/pda.yml
@@ -13,7 +13,7 @@
state: pda-lawyer
- type: entity
- parent: BasePDA
+ parent: BaseSecurityPDA
id: PilotPDA
name: pilot PDA
description: Нas protection from cosmic radiation.
diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml
index a66209b9faa..1006d21abb7 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml
@@ -127,6 +127,7 @@
- NotekeeperCartridge
- NewsReaderCartridge
- WantedListCartridge
+ - CrimeAssistCartridge # Corvax-Next-CrimeAssist
- NanoChatCartridge # Corvax-Next-PDAChat
- type: entity
@@ -697,6 +698,7 @@
- NotekeeperCartridge
- NewsReaderCartridge
- WantedListCartridge
+ - CrimeAssistCartridge # Corvax-Next-CrimeAssist
- LogProbeCartridge
- NanoChatCartridge # Corvax-Next-PDAChat
@@ -1049,6 +1051,7 @@
- NotekeeperCartridge
- NewsReaderCartridge
- WantedListCartridge
+ - CrimeAssistCartridge # Corvax-Next-CrimeAssist
- LogProbeCartridge
- NanoChatCartridge # Corvax-Next-PDAChat
diff --git a/Resources/Prototypes/_CorvaxNext/CrimeAssist/corporationlaws.yml b/Resources/Prototypes/_CorvaxNext/CrimeAssist/corporationlaws.yml
new file mode 100644
index 00000000000..4e03d5d43c9
--- /dev/null
+++ b/Resources/Prototypes/_CorvaxNext/CrimeAssist/corporationlaws.yml
@@ -0,0 +1,153 @@
+# Corporation Laws
+
+# Code 111
+- type: crimeAssistPage
+ id: "resultCorporationInsultingAuthoritySymbols"
+ locKeyTitle: "crime-assist-crime-corporation-insulting-authority-symbols"
+ locKeyDescription: "crime-assist-crime-detail-corporation-insulting-authority-symbols"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-insulting-authority-symbols"
+
+# Code 112
+- type: crimeAssistPage
+ id: "resultCorporationResistingAuthorities"
+ locKeyTitle: "crime-assist-crime-corporation-resisting-authorities"
+ locKeyDescription: "crime-assist-crime-detail-corporation-resisting-authorities"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-resisting-authorities"
+
+# Code 113
+- type: crimeAssistPage
+ id: "resultCorporationStrike"
+ locKeyTitle: "crime-assist-crime-corporation-strike"
+ locKeyDescription: "crime-assist-crime-detail-corporation-strike"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-strike"
+
+# Code 115
+- type: crimeAssistPage
+ id: "resultCorporationNoncomplianceInEmergency"
+ locKeyTitle: "crime-assist-crime-corporation-noncompliance-in-emergency"
+ locKeyDescription: "crime-assist-crime-detail-corporation-noncompliance-in-emergency"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-noncompliance-in-emergency"
+
+# Code 116
+- type: crimeAssistPage
+ id: "resultCorporationMutiny"
+ locKeyTitle: "crime-assist-crime-corporation-mutiny"
+ locKeyDescription: "crime-assist-crime-detail-corporation-mutiny"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-mutiny"
+
+# Code 121
+- type: crimeAssistPage
+ id: "resultCorporationContemptOfCourt"
+ locKeyTitle: "crime-assist-crime-corporation-contempt-of-court"
+ locKeyDescription: "crime-assist-crime-detail-corporation-contempt-of-court"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-contempt-of-court"
+
+# Code 122
+- type: crimeAssistPage
+ id: "resultCorporationConcealingCrime"
+ locKeyTitle: "crime-assist-crime-corporation-concealing-crime"
+ locKeyDescription: "crime-assist-crime-detail-corporation-concealing-crime"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-concealing-crime"
+
+# Code 123
+- type: crimeAssistPage
+ id: "resultCorporationEscapeConfinement"
+ locKeyTitle: "crime-assist-crime-corporation-escape-confinement"
+ locKeyDescription: "crime-assist-crime-detail-corporation-escape-confinement"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-escape-confinement"
+
+# Code 124
+- type: crimeAssistPage
+ id: "resultCorporationFailureToExecuteCourtRuling"
+ locKeyTitle: "crime-assist-crime-corporation-failure-to-execute-court-ruling"
+ locKeyDescription: "crime-assist-crime-detail-corporation-failure-to-execute-court-ruling"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-failure-to-execute-court-ruling"
+
+# Code 125
+- type: crimeAssistPage
+ id: "resultCorporationConcealingMajorCrime"
+ locKeyTitle: "crime-assist-crime-corporation-concealing-major-crime"
+ locKeyDescription: "crime-assist-crime-detail-corporation-concealing-major-crime"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-concealing-major-crime"
+
+# Code 126
+- type: crimeAssistPage
+ id: "resultCorporationEscapeLifeSentencing"
+ locKeyTitle: "crime-assist-crime-corporation-escape-life-sentencing"
+ locKeyDescription: "crime-assist-crime-detail-corporation-escape-life-sentencing"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-escape-life-sentencing"
+
+# Code 131
+- type: crimeAssistPage
+ id: "resultCorporationBannedOrgPropaganda"
+ locKeyTitle: "crime-assist-crime-corporation-banned-org-propaganda"
+ locKeyDescription: "crime-assist-crime-detail-corporation-banned-org-propaganda"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-banned-org-propaganda"
+
+# Code 133
+- type: crimeAssistPage
+ id: "resultCorporationSabotage"
+ locKeyTitle: "crime-assist-crime-corporation-sabotage"
+ locKeyDescription: "crime-assist-crime-detail-corporation-sabotage"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-sabotage"
+
+# Code 135
+- type: crimeAssistPage
+ id: "resultCorporationCriminalGroupMembership"
+ locKeyTitle: "crime-assist-crime-corporation-criminal-group-membership"
+ locKeyDescription: "crime-assist-crime-detail-corporation-criminal-group-membership"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-criminal-group-membership"
+
+# Code 136
+- type: crimeAssistPage
+ id: "resultCorporationGrandSabotage"
+ locKeyTitle: "crime-assist-crime-corporation-grand-sabotage"
+ locKeyDescription: "crime-assist-crime-detail-corporation-grand-sabotage"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-grand-sabotage"
+
+# Code 141
+- type: crimeAssistPage
+ id: "resultCorporationSpecialOrdersFailure"
+ locKeyTitle: "crime-assist-crime-corporation-special-orders-failure"
+ locKeyDescription: "crime-assist-crime-detail-corporation-special-orders-failure"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-special-orders-failure"
+
+# Code 142
+- type: crimeAssistPage
+ id: "resultCorporationNegligence"
+ locKeyTitle: "crime-assist-crime-corporation-negligence"
+ locKeyDescription: "crime-assist-crime-detail-corporation-negligence"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-negligence"
+
+# Code 144
+- type: crimeAssistPage
+ id: "resultCorporationGrossNegligence"
+ locKeyTitle: "crime-assist-crime-corporation-gross-negligence"
+ locKeyDescription: "crime-assist-crime-detail-corporation-gross-negligence"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-gross-negligence"
+
+# Code 145
+- type: crimeAssistPage
+ id: "resultCorporationVigilantism"
+ locKeyTitle: "crime-assist-crime-corporation-vigilantism"
+ locKeyDescription: "crime-assist-crime-detail-corporation-vigilantism"
+ locKeySeverity: "crime-assist-crime-type-corporate"
+ locKeyPunishment: "crime-assist-crime-punishment-corporation-vigilantism"
diff --git a/Resources/Prototypes/_CorvaxNext/CrimeAssist/crimeassistflow.yml b/Resources/Prototypes/_CorvaxNext/CrimeAssist/crimeassistflow.yml
new file mode 100644
index 00000000000..969f8be27b0
--- /dev/null
+++ b/Resources/Prototypes/_CorvaxNext/CrimeAssist/crimeassistflow.yml
@@ -0,0 +1,470 @@
+# Main Menu
+
+- type: crimeAssistPage
+ id: "mainmenu"
+ locKey: "crime-assist-mainmenu"
+ onStart: "questionIsItAgainstPerson"
+
+# Personal Law
+
+- type: crimeAssistPage
+ id: "questionIsItAgainstPerson"
+ locKey: "crime-assist-question-against-person"
+ onYes: "questionIsPersonDamaged"
+ onNo: "questionIsItAgainstProperty"
+
+- type: crimeAssistPage
+ id: "questionIsPersonDamaged"
+ locKey: "crime-assist-question-person-damage"
+ onYes: "questionIsPersonDamageInsignificant"
+ onNo: "questionIsPersonOffended"
+
+# Code 212
+- type: crimeAssistPage
+ id: "questionIsPersonDamageInsignificant"
+ locKey: "crime-assist-question-person-damage-insignificant"
+ onYes: "resultPersonMinorBodilyHarm"
+ onNo: "questionIsPersonDamageMedicalNeeded"
+
+# Code 213
+- type: crimeAssistPage
+ id: "questionIsPersonDamageMedicalNeeded"
+ locKey: "crime-assist-question-person-damage-medical-needed"
+ onYes: "resultPersonModerateBodilyHarm"
+ onNo: "questionIsPersonDamageLifeThreatening"
+
+# Code 214
+- type: crimeAssistPage
+ id: "questionIsPersonDamageLifeThreatening"
+ locKey: "crime-assist-question-person-damage-life-threatening"
+ onYes: "resultPersonSevereBodilyHarm"
+ onNo: "questionDidPersonDamageResultInDeath"
+
+# Code 214
+- type: crimeAssistPage
+ id: "questionDidPersonDamageResultInDeath"
+ locKey: "crime-assist-question-person-damage-resulted-in-death"
+ onYes: "questionWasPersonBodyDestroyed"
+ onNo: "resultPersonSevereBodilyHarm"
+
+# Code 215 & 216
+- type: crimeAssistPage
+ id: "questionWasPersonBodyDestroyed"
+ locKey: "crime-assist-question-person-body-destroyed"
+ onYes: "resultPersonBodyDestruction"
+ onNo: "resultPersonMurder"
+
+# Code 221
+- type: crimeAssistPage
+ id: "questionIsPersonOffended"
+ locKey: "crime-assist-question-person-offense"
+ onYes: "resultPersonInsultSlurs"
+ onNo: "questionIsPersonFalseTestimonyGiven"
+
+# Code 223
+- type: crimeAssistPage
+ id: "questionIsPersonFalseTestimonyGiven"
+ locKey: "crime-assist-question-person-false-testimony"
+ onYes: "resultPersonPerjury"
+ onNo: "questionIsPersonUnlawfullyRestrained"
+
+# Code 224
+- type: crimeAssistPage
+ id: "questionIsPersonUnlawfullyRestrained"
+ locKey: "crime-assist-question-person-unlawful-restraint"
+ onYes: "resultPersonUnlawfulRestraint"
+ onNo: "questionIsItAgainstPerson"
+
+# Property Law
+
+- type: crimeAssistPage
+ id: "questionIsItAgainstProperty"
+ locKey: "crime-assist-question-against-property"
+ onYes: "questionDidPropertyTheftOccur"
+ onNo: "questionIsItAgainstCorporation"
+
+- type: crimeAssistPage
+ id: "questionDidPropertyTheftOccur"
+ locKey: "crime-assist-question-property-theft-occurred"
+ onYes: "questionIsPropertyPettyTheft"
+ onNo: "questionIsPropertyDamaged"
+
+# Code 311
+- type: crimeAssistPage
+ id: "questionIsPropertyPettyTheft"
+ locKey: "crime-assist-question-property-theft-petty"
+ onYes: "resultPropertyPettyTheft"
+ onNo: "questionIsPropertyStandardTheft"
+
+# Code 312
+- type: crimeAssistPage
+ id: "questionIsPropertyStandardTheft"
+ locKey: "crime-assist-question-property-theft-standard"
+ onYes: "resultPropertyTheft"
+ onNo: "questionIsPropertyRareTheft"
+
+# Code 312
+- type: crimeAssistPage
+ id: "questionIsPropertyRareTheft"
+ locKey: "crime-assist-question-property-theft-rare"
+ onYes: "questionIsPropertyValuableTheft"
+ onNo: "resultPropertyTheft"
+
+# Code 316
+- type: crimeAssistPage
+ id: "questionIsPropertyValuableTheft"
+ locKey: "crime-assist-question-property-theft-valuable"
+ onYes: "resultPropertyValuableTheft"
+ onNo: "questionIsPropertyOpenTheft"
+
+# Code 314
+- type: crimeAssistPage
+ id: "questionIsPropertyOpenTheft"
+ locKey: "crime-assist-question-property-theft-open"
+ onYes: "questionIsPropertyArmedTheft"
+ onNo: "resultPropertyRobbery"
+
+# Code 315
+- type: crimeAssistPage
+ id: "questionIsPropertyArmedTheft"
+ locKey: "crime-assist-question-property-theft-armed"
+ onYes: "resultPropertyArmedRobbery"
+ onNo: "questionIsItAgainstProperty"
+
+- type: crimeAssistPage
+ id: "questionIsPropertyDamaged"
+ locKey: "crime-assist-question-property-damage"
+ onYes: "questionIsPropertyCommonlyDamaged"
+ onNo: "questionIsItAgainstProperty"
+
+# Code 321
+- type: crimeAssistPage
+ id: "questionIsPropertyCommonlyDamaged"
+ locKey: "crime-assist-question-property-damage-common"
+ onYes: "resultPropertyPropertyDamage"
+ onNo: "questionIsPropertyValuablyDamaged"
+
+# Code 322
+- type: crimeAssistPage
+ id: "questionIsPropertyValuablyDamaged"
+ locKey: "crime-assist-question-property-damage-valuable"
+ onYes: "resultPropertyValuablePropertyDamage"
+ onNo: "questionIsPropertyCommonlyDestroyed"
+
+# Code 323
+- type: crimeAssistPage
+ id: "questionIsPropertyCommonlyDestroyed"
+ locKey: "crime-assist-question-property-destruction-common"
+ onYes: "resultPropertyPropertyDestruction"
+ onNo: "questionIsPropertyValuablyDestroyed"
+
+# Code 324
+- type: crimeAssistPage
+ id: "questionIsPropertyValuablyDestroyed"
+ locKey: "crime-assist-question-property-destruction-valuable"
+ onYes: "resultPropertyValuablePropertyDestruction"
+ onNo: "questionIsPropertyCriticallyDestroyed"
+
+# Code 326
+- type: crimeAssistPage
+ id: "questionIsPropertyCriticallyDestroyed"
+ locKey: "crime-assist-question-property-destruction-valuable"
+ onYes: "resultPropertyCriticalPropertyDestruction"
+ onNo: "questionIsItAgainstCorporation"
+
+# Corporation Law
+
+- type: crimeAssistPage
+ id: "questionIsItAgainstCorporation"
+ locKey: "crime-assist-question-against-corporation"
+ onYes: "questionIsCorporationAuthorityUndermined"
+ onNo: "questionIsItAgainstPublicOrder"
+
+- type: crimeAssistPage
+ id: "questionIsCorporationAuthorityUndermined"
+ locKey: "crime-assist-question-corporation-authority-undermined"
+ onYes: "questionIsCorporationLegitimateOrderRefused"
+ onNo: "questionIsCorporationJusticeViolated"
+
+# Code 111
+- type: crimeAssistPage
+ id: "questionIsCorporationLegitimateOrderRefused"
+ locKey: "crime-assist-question-corporation-legitimate-order-refusal"
+ onYes: "resultCorporationInsultingAuthoritySymbols"
+ onNo: "questionIsCorporationSymbolsDisrespected"
+
+# Code 112
+- type: crimeAssistPage
+ id: "questionIsCorporationSymbolsDisrespected"
+ locKey: "crime-assist-question-corporation-disrespect-symbols"
+ onYes: "resultCorporationResistingAuthorities"
+ onNo: "questionIsCorporationStrikeUnauthorized"
+
+- type: crimeAssistPage
+ id: "questionIsCorporationStrikeUnauthorized"
+ locKey: "crime-assist-question-corporation-unauthorized-strike"
+ onYes: "questionIsCorporationArmedRebellion"
+ onNo: "questionIsCorporationCrisisDisobedience"
+
+# Code 113 & 116
+- type: crimeAssistPage
+ id: "questionIsCorporationArmedRebellion"
+ locKey: "crime-assist-question-corporation-armed-rebellion"
+ onYes: "resultCorporationMutiny"
+ onNo: "resultCorporationStrike"
+
+# Code 115
+- type: crimeAssistPage
+ id: "questionIsCorporationCrisisDisobedience"
+ locKey: "crime-assist-question-corporation-crisis-disobedience"
+ onYes: "resultCorporationNoncomplianceInEmergency"
+ onNo: "questionIsItAgainstCorporation"
+
+- type: crimeAssistPage
+ id: "questionIsCorporationJusticeViolated"
+ locKey: "crime-assist-question-corporation-justice-violation"
+ onYes: "questionIsCorporationCourtDisrespected"
+ onNo: "questionIsCorporationUnfairCompetition"
+
+# Code 121
+- type: crimeAssistPage
+ id: "questionIsCorporationCourtDisrespected"
+ locKey: "crime-assist-question-corporation-disrespect-court"
+ onYes: "resultCorporationContemptOfCourt"
+ onNo: "questionIsCorporationMinorConcealment"
+
+- type: crimeAssistPage
+ id: "questionIsCorporationMinorConcealment"
+ locKey: "crime-assist-question-corporation-concealment-minor"
+ onYes: "questionIsCorporationMajorConcealment"
+ onNo: "questionIsCorporationTemporaryEscape"
+
+# Code 122 & 125
+- type: crimeAssistPage
+ id: "questionIsCorporationMajorConcealment"
+ locKey: "crime-assist-question-corporation-concealment-major"
+ onYes: "resultCorporationConcealingMajorCrime"
+ onNo: "resultCorporationConcealingCrime"
+
+- type: crimeAssistPage
+ id: "questionIsCorporationTemporaryEscape"
+ locKey: "crime-assist-question-corporation-escape-temporary"
+ onYes: "questionIsCorporationPermanentEscape"
+ onNo: "questionIsCorporationCourtOrderIgnored"
+
+# Code 123 & 126
+- type: crimeAssistPage
+ id: "questionIsCorporationPermanentEscape"
+ locKey: "crime-assist-question-corporation-escape-permanent"
+ onYes: "resultCorporationEscapeLifeSentencing"
+ onNo: "resultCorporationEscapeConfinement"
+
+# Code 124
+- type: crimeAssistPage
+ id: "questionIsCorporationCourtOrderIgnored"
+ locKey: "crime-assist-question-corporation-ignored-court-order"
+ onYes: "resultCorporationFailureToExecuteCourtRuling"
+ onNo: "questionIsItAgainstCorporation"
+
+- type: crimeAssistPage
+ id: "questionIsCorporationUnfairCompetition"
+ locKey: "crime-assist-question-corporation-unfair-competition"
+ onYes: "questionIsCorporationForbiddenOrgPropaganda"
+ onNo: "questionIsCorporationSpecialOrdersFailure"
+
+# Code 131
+- type: crimeAssistPage
+ id: "questionIsCorporationForbiddenOrgPropaganda"
+ locKey: "crime-assist-question-corporation-forbidden-org-propaganda"
+ onYes: "resultCorporationBannedOrgPropaganda"
+ onNo: "questionIsCorporationDepartmentSabotage"
+
+# Code 133
+- type: crimeAssistPage
+ id: "questionIsCorporationDepartmentSabotage"
+ locKey: "crime-assist-question-corporation-department-sabotage"
+ onYes: "resultCorporationSabotage"
+ onNo: "questionIsCorporationCriminalGroupInvolved"
+
+# Code 135
+- type: crimeAssistPage
+ id: "questionIsCorporationCriminalGroupInvolved"
+ locKey: "crime-assist-question-corporation-criminal-group"
+ onYes: "resultCorporationCriminalGroupMembership"
+ onNo: "questionIsCorporationMajorSabotage"
+
+# Code 136
+- type: crimeAssistPage
+ id: "questionIsCorporationMajorSabotage"
+ locKey: "crime-assist-question-corporation-major-sabotage"
+ onYes: "resultCorporationGrandSabotage"
+ onNo: "questionIsItAgainstCorporation"
+
+- type: crimeAssistPage
+ id: "questionIsCorporationProfessional"
+ locKey: "crime-assist-question-corporation-professional"
+ onYes: "questionIsCorporationSpecialOrdersFailure"
+ onNo: "questionIsItAgainstCorporation"
+
+# Code 141
+- type: crimeAssistPage
+ id: "questionIsCorporationSpecialOrdersFailure"
+ locKey: "crime-assist-question-corporation-special-orders-failure"
+ onYes: "resultCorporationSpecialOrdersFailure"
+ onNo: "questionIsCorporationNegligence"
+
+- type: crimeAssistPage
+ id: "questionIsCorporationNegligence"
+ locKey: "crime-assist-question-corporation-negligence"
+ onYes: "questionIsCorporationGrossNegligence"
+ onNo: "questionIsCorporationVigilantism"
+
+# Code 142 & 144
+- type: crimeAssistPage
+ id: "questionIsCorporationGrossNegligence"
+ locKey: "crime-assist-question-corporation-gross-negligence"
+ onYes: "resultCorporationGrossNegligence"
+ onNo: "resultCorporationNegligence"
+
+# Code 145
+- type: crimeAssistPage
+ id: "questionIsCorporationVigilantism"
+ locKey: "crime-assist-question-corporation-vigilantism"
+ onYes: "resultCorporationVigilantism"
+ onNo: "questionIsItAgainstCorporation"
+
+# Public Order Laws
+
+- type: crimeAssistPage
+ id: "questionIsItAgainstPublicOrder"
+ locKey: "crime-assist-question-against-public-order"
+ onYes: "questionIsPublicOrderViolated"
+ onNo: "questionIsItAgainstPerson"
+
+- type: crimeAssistPage
+ id: "questionIsPublicOrderViolated"
+ locKey: "crime-assist-question-public-order-violation"
+ onYes: "questionIsPublicOrderHooliganism"
+ onNo: "questionIsPublicOrderTerritorialViolation"
+
+# Code 411
+- type: crimeAssistPage
+ id: "questionIsPublicOrderHooliganism"
+ locKey: "crime-assist-question-public-order-hooliganism"
+ onYes: "resultPublicOrderHooliganism"
+ onNo: "questionIsPublicOrderFraud"
+
+- type: crimeAssistPage
+ id: "questionIsPublicOrderFraud"
+ locKey: "crime-assist-question-public-order-fraud"
+ onYes: "questionIsPublicOrderMajorFraud"
+ onNo: "questionIsPublicOrderTerrorAct"
+
+# Code 413 & 415
+- type: crimeAssistPage
+ id: "questionIsPublicOrderMajorFraud"
+ locKey: "crime-assist-question-public-order-major-fraud"
+ onYes: "resultPublicOrderGrandFraud"
+ onNo: "resultPublicOrderFraud"
+
+- type: crimeAssistPage
+ id: "questionIsPublicOrderTerrorAct"
+ locKey: "crime-assist-question-public-order-terror-act"
+ onYes: "resultPublicOrderTerrorism"
+ onNo: "questionIsItAgainstPublicOrder"
+
+- type: crimeAssistPage
+ id: "questionIsPublicOrderTerritorialViolation"
+ locKey: "crime-assist-question-public-order-territorial-violation"
+ onYes: "questionIsPublicOrderUnauthorizedArea"
+ onNo: "questionIsPublicOrderUnauthorizedPossession"
+
+# Code 421
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedArea"
+ locKey: "crime-assist-question-public-order-unauthorized-area"
+ onYes: "resultPublicOrderUnauthorizedTechOrbitAccess"
+ onNo: "questionIsPublicOrderUnauthorizedDepartment"
+
+# Code 422
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedDepartment"
+ locKey: "crime-assist-question-public-order-unauthorized-department"
+ onYes: "resultPublicOrderDepartmentTrespass"
+ onNo: "questionIsPublicOrderUnauthorizedStrategic"
+
+# Code 423
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedStrategic"
+ locKey: "crime-assist-question-public-order-unauthorized-strategic"
+ onYes: "resultPublicOrderStrategicPointTrespass"
+ onNo: "questionIsPublicOrderUnauthorizedSecured"
+
+# Code 424
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedSecured"
+ locKey: "crime-assist-question-public-order-unauthorized-secured"
+ onYes: "resultPublicOrderSecuredPointTrespass"
+ onNo: "questionIsPublicOrderUnauthorizedEvac"
+
+# Code 425
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedEvac"
+ locKey: "crime-assist-question-public-order-unauthorized-evac"
+ onYes: "resultPublicOrderIllegalEvacuation"
+ onNo: "questionIsPublicOrderUnauthorizedOnNtProperty"
+
+# Code 426
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedOnNtProperty"
+ locKey: "crime-assist-question-public-order-unauthorized-on-nt-property"
+ onYes: "resultPublicOrderNtPropertyTrespass"
+ onNo: "questionIsItAgainstPublicOrder"
+
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedPossession"
+ locKey: "crime-assist-question-public-order-unauthorized-possession"
+ onYes: "questionIsPublicOrderUnauthorizedEquipment"
+ onNo: "questionIsItAgainstPublicOrder"
+
+# Code 431
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedEquipment"
+ locKey: "crime-assist-question-public-order-unauthorized-equipment"
+ onYes: "resultPublicOrderEquipAbuse"
+ onNo: "questionIsPublicOrderUnauthorizedDangerousItem"
+
+# Code 432
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedDangerousItem"
+ locKey: "crime-assist-question-public-order-unauthorized-dangerous-item"
+ onYes: "resultPublicOrderIllegalWeaponPossession"
+ onNo: "questionIsPublicOrderUnauthorizedControlledItem"
+
+# Code 433
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedControlledItem"
+ locKey: "crime-assist-question-public-order-unauthorized-controlled-item"
+ onYes: "resultPublicOrderContrabandPossession"
+ onNo: "questionIsPublicOrderUnauthorizedSubstance"
+
+# Code 434
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedSubstance"
+ locKey: "crime-assist-question-public-order-unauthorized-substance"
+ onYes: "resultPublicOrderIllegalSubstancesPossession"
+ onNo: "questionIsPublicOrderUnauthorizedWeapon"
+
+# Code 435
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedWeapon"
+ locKey: "crime-assist-question-public-order-unauthorized-weapon"
+ onYes: "resultPublicOrderUnauthorizedArmPossession"
+ onNo: "questionIsPublicOrderUnauthorizedEnemyItem"
+
+# Code 436
+- type: crimeAssistPage
+ id: "questionIsPublicOrderUnauthorizedEnemyItem"
+ locKey: "crime-assist-question-public-order-unauthorized-enemy-item"
+ onYes: "resultPublicOrderHostileGearPossession"
+ onNo: "questionIsItAgainstPublicOrder"
diff --git a/Resources/Prototypes/_CorvaxNext/CrimeAssist/personallaws.yml b/Resources/Prototypes/_CorvaxNext/CrimeAssist/personallaws.yml
new file mode 100644
index 00000000000..bd721b794f4
--- /dev/null
+++ b/Resources/Prototypes/_CorvaxNext/CrimeAssist/personallaws.yml
@@ -0,0 +1,65 @@
+# Personal Laws
+
+# Code 212
+- type: crimeAssistPage
+ id: "resultPersonMinorBodilyHarm"
+ locKeyTitle: "crime-assist-crime-person-minor-bodily-harm"
+ locKeyDescription: "crime-assist-crime-detail-person-minor-bodily-harm"
+ locKeySeverity: "crime-assist-crime-type-personal"
+ locKeyPunishment: "crime-assist-crime-punishment-person-minor-bodily-harm"
+
+# Codse 213
+- type: crimeAssistPage
+ id: "resultPersonModerateBodilyHarm"
+ locKeyTitle: "crime-assist-crime-person-moderate-bodily-harm"
+ locKeyDescription: "crime-assist-crime-detail-person-moderate-bodily-harm"
+ locKeySeverity: "crime-assist-crime-type-personal"
+ locKeyPunishment: "crime-assist-crime-punishment-person-moderate-bodily-harm"
+
+# Code 214
+- type: crimeAssistPage
+ id: "resultPersonSevereBodilyHarm"
+ locKeyTitle: "crime-assist-crime-person-severe-bodily-harm"
+ locKeyDescription: "crime-assist-crime-detail-person-severe-bodily-harm"
+ locKeySeverity: "crime-assist-crime-type-personal"
+ locKeyPunishment: "crime-assist-crime-punishment-person-severe-bodily-harm"
+
+# Code 215
+- type: crimeAssistPage
+ id: "resultPersonMurder"
+ locKeyTitle: "crime-assist-crime-person-murder"
+ locKeyDescription: "crime-assist-crime-detail-person-murder"
+ locKeySeverity: "crime-assist-crime-type-personal"
+ locKeyPunishment: "crime-assist-crime-punishment-person-murder"
+
+# Code 216
+- type: crimeAssistPage
+ id: "resultPersonBodyDestruction"
+ locKeyTitle: "crime-assist-crime-person-body-destruction"
+ locKeyDescription: "crime-assist-crime-detail-person-body-destruction"
+ locKeySeverity: "crime-assist-crime-type-personal"
+ locKeyPunishment: "crime-assist-crime-punishment-person-body-destruction"
+
+# Code 221
+- type: crimeAssistPage
+ id: "resultPersonInsultSlurs"
+ locKeyTitle: "crime-assist-crime-person-insult-slurs"
+ locKeyDescription: "crime-assist-crime-detail-person-insult-slurs"
+ locKeySeverity: "crime-assist-crime-type-personal"
+ locKeyPunishment: "crime-assist-crime-punishment-person-insult-slurs"
+
+# Code 223
+- type: crimeAssistPage
+ id: "resultPersonPerjury"
+ locKeyTitle: "crime-assist-crime-person-perjury"
+ locKeyDescription: "crime-assist-crime-detail-person-perjury"
+ locKeySeverity: "crime-assist-crime-type-personal"
+ locKeyPunishment: "crime-assist-crime-punishment-person-perjury"
+
+# Code 224
+- type: crimeAssistPage
+ id: "resultPersonUnlawfulRestraint"
+ locKeyTitle: "crime-assist-crime-person-unlawful-restraint"
+ locKeyDescription: "crime-assist-crime-detail-person-unlawful-restraint"
+ locKeySeverity: "crime-assist-crime-type-personal"
+ locKeyPunishment: "crime-assist-crime-punishment-person-unlawful-restraint"
diff --git a/Resources/Prototypes/_CorvaxNext/CrimeAssist/propertylaws.yml b/Resources/Prototypes/_CorvaxNext/CrimeAssist/propertylaws.yml
new file mode 100644
index 00000000000..a3ebe7d5447
--- /dev/null
+++ b/Resources/Prototypes/_CorvaxNext/CrimeAssist/propertylaws.yml
@@ -0,0 +1,89 @@
+# Property Laws
+
+# Code 311
+- type: crimeAssistPage
+ id: "resultPropertyPettyTheft"
+ locKeyTitle: "crime-assist-crime-property-petty-theft"
+ locKeyDescription: "crime-assist-crime-detail-property-petty-theft"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-petty-theft"
+
+# Code 312
+- type: crimeAssistPage
+ id: "resultPropertyTheft"
+ locKeyTitle: "crime-assist-crime-property-theft"
+ locKeyDescription: "crime-assist-crime-detail-property-theft"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-theft"
+
+# Code 313
+- type: crimeAssistPage
+ id: "resultPropertyRobbery"
+ locKeyTitle: "crime-assist-crime-property-robbery"
+ locKeyDescription: "crime-assist-crime-detail-property-robbery"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-robbery"
+
+# Code 314
+- type: crimeAssistPage
+ id: "resultPropertyGrandTheft"
+ locKeyTitle: "crime-assist-crime-property-grand-theft"
+ locKeyDescription: "crime-assist-crime-detail-property-grand-theft"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-grand-theft"
+
+# Code 315
+- type: crimeAssistPage
+ id: "resultPropertyArmedRobbery"
+ locKeyTitle: "crime-assist-crime-property-armed-robbery"
+ locKeyDescription: "crime-assist-crime-detail-property-armed-robbery"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-armed-robbery"
+
+# Code 316
+- type: crimeAssistPage
+ id: "resultPropertyValuableTheft"
+ locKeyTitle: "crime-assist-crime-property-valuable-theft"
+ locKeyDescription: "crime-assist-crime-detail-property-valuable-theft"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-valuable-theft"
+
+# Code 321
+- type: crimeAssistPage
+ id: "resultPropertyPropertyDamage"
+ locKeyTitle: "crime-assist-crime-property-property-damage"
+ locKeyDescription: "crime-assist-crime-detail-property-property-damage"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-property-damage"
+
+# Code 322
+- type: crimeAssistPage
+ id: "resultPropertyValuablePropertyDamage"
+ locKeyTitle: "crime-assist-crime-property-valuable-property-damage"
+ locKeyDescription: "crime-assist-crime-detail-property-valuable-property-damage"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-valuable-property-damage"
+
+# Code 323
+- type: crimeAssistPage
+ id: "resultPropertyPropertyDestruction"
+ locKeyTitle: "crime-assist-crime-property-property-destruction"
+ locKeyDescription: "crime-assist-crime-detail-property-property-destruction"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-property-destruction"
+
+# Code 324
+- type: crimeAssistPage
+ id: "resultPropertyValuablePropertyDestruction"
+ locKeyTitle: "crime-assist-crime-property-valuable-property-destruction"
+ locKeyDescription: "crime-assist-crime-detail-property-valuable-property-destruction"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-valuable-property-destruction"
+
+# Code 326
+- type: crimeAssistPage
+ id: "resultPropertyCriticalPropertyDestruction"
+ locKeyTitle: "crime-assist-crime-property-critical-property-destruction"
+ locKeyDescription: "crime-assist-crime-detail-property-critical-property-destruction"
+ locKeySeverity: "crime-assist-crime-type-property"
+ locKeyPunishment: "crime-assist-crime-punishment-property-critical-property-destruction"
diff --git a/Resources/Prototypes/_CorvaxNext/CrimeAssist/publicorderlaws.yml b/Resources/Prototypes/_CorvaxNext/CrimeAssist/publicorderlaws.yml
new file mode 100644
index 00000000000..19c92089093
--- /dev/null
+++ b/Resources/Prototypes/_CorvaxNext/CrimeAssist/publicorderlaws.yml
@@ -0,0 +1,129 @@
+# Public Order Laws
+
+# Code 411
+- type: crimeAssistPage
+ id: "resultPublicOrderHooliganism"
+ locKeyTitle: "crime-assist-crime-public-order-hooliganism"
+ locKeyDescription: "crime-assist-crime-detail-public-order-hooliganism"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-hooliganism"
+
+# Code 413
+- type: crimeAssistPage
+ id: "resultPublicOrderFraud"
+ locKeyTitle: "crime-assist-crime-public-order-fraud"
+ locKeyDescription: "crime-assist-crime-detail-public-order-fraud"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-fraud"
+
+# Code 415
+- type: crimeAssistPage
+ id: "resultPublicOrderGrandFraud"
+ locKeyTitle: "crime-assist-crime-public-order-grand-fraud"
+ locKeyDescription: "crime-assist-crime-detail-public-order-grand-fraud"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-grand-fraud"
+
+# Code 416
+- type: crimeAssistPage
+ id: "resultPublicOrderTerrorism"
+ locKeyTitle: "crime-assist-crime-public-order-terrorism"
+ locKeyDescription: "crime-assist-crime-detail-public-order-terrorism"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-terrorism"
+
+# Code 421
+- type: crimeAssistPage
+ id: "resultPublicOrderUnauthorizedTechOrbitAccess"
+ locKeyTitle: "crime-assist-crime-public-order-unauthorized-tech-orbit-access"
+ locKeyDescription: "crime-assist-crime-detail-public-order-unauthorized-tech-orbit-access"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-unauthorized-tech-orbit-access"
+
+# Code 422
+- type: crimeAssistPage
+ id: "resultPublicOrderDepartmentTrespass"
+ locKeyTitle: "crime-assist-crime-public-order-department-trespass"
+ locKeyDescription: "crime-assist-crime-detail-public-order-department-trespass"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-department-trespass"
+
+# Code 423
+- type: crimeAssistPage
+ id: "resultPublicOrderStrategicPointTrespass"
+ locKeyTitle: "crime-assist-crime-public-order-strategic-point-trespass"
+ locKeyDescription: "crime-assist-crime-detail-public-order-strategic-point-trespass"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-strategic-point-trespass"
+
+# Code 424
+- type: crimeAssistPage
+ id: "resultPublicOrderSecuredPointTrespass"
+ locKeyTitle: "crime-assist-crime-public-order-secured-point-trespass"
+ locKeyDescription: "crime-assist-crime-detail-public-order-secured-point-trespass"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-secured-point-trespass"
+
+# Code 425
+- type: crimeAssistPage
+ id: "resultPublicOrderIllegalEvacuation"
+ locKeyTitle: "crime-assist-crime-public-order-illegal-evacuation"
+ locKeyDescription: "crime-assist-crime-detail-public-order-illegal-evacuation"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-illegal-evacuation"
+
+# Code 426
+- type: crimeAssistPage
+ id: "resultPublicOrderNtPropertyTrespass"
+ locKeyTitle: "crime-assist-crime-public-order-nt-property-trespass"
+ locKeyDescription: "crime-assist-crime-detail-public-order-nt-property-trespass"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-nt-property-trespass"
+
+# Code 431
+- type: crimeAssistPage
+ id: "resultPublicOrderEquipAbuse"
+ locKeyTitle: "crime-assist-crime-public-order-equip-abuse"
+ locKeyDescription: "crime-assist-crime-detail-public-order-equip-abuse"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-equip-abuse"
+
+# Code 432
+- type: crimeAssistPage
+ id: "resultPublicOrderIllegalWeaponPossession"
+ locKeyTitle: "crime-assist-crime-public-order-illegal-weapon-possession"
+ locKeyDescription: "crime-assist-crime-detail-public-order-illegal-weapon-possession"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-illegal-weapon-possession"
+
+# Code 433
+- type: crimeAssistPage
+ id: "resultPublicOrderContrabandPossession"
+ locKeyTitle: "crime-assist-crime-public-order-contraband-possession"
+ locKeyDescription: "crime-assist-crime-detail-public-order-contraband-possession"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-contraband-possession"
+
+# Code 434
+- type: crimeAssistPage
+ id: "resultPublicOrderIllegalSubstancesPossession"
+ locKeyTitle: "crime-assist-crime-public-order-illegal-substances-possession"
+ locKeyDescription: "crime-assist-crime-detail-public-order-illegal-substances-possession"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-illegal-substances-possession"
+
+# Code 435
+- type: crimeAssistPage
+ id: "resultPublicOrderUnauthorizedArmPossession"
+ locKeyTitle: "crime-assist-crime-public-order-unauthorized-arm-possession"
+ locKeyDescription: "crime-assist-crime-detail-public-order-unauthorized-arm-possession"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-unauthorized-arm-possession"
+
+# Code 436
+- type: crimeAssistPage
+ id: "resultPublicOrderHostileGearPossession"
+ locKeyTitle: "crime-assist-crime-public-order-hostile-gear-possession"
+ locKeyDescription: "crime-assist-crime-detail-public-order-hostile-gear-possession"
+ locKeySeverity: "crime-assist-crime-type-public-order"
+ locKeyPunishment: "crime-assist-crime-punishment-public-order-hostile-gear-possession"
diff --git a/Resources/Prototypes/_CorvaxNext/Entities/Objects/Devices/cartridges.yml b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Devices/cartridges.yml
index 9bc1b9323f1..25c4c8b97ca 100644
--- a/Resources/Prototypes/_CorvaxNext/Entities/Objects/Devices/cartridges.yml
+++ b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Devices/cartridges.yml
@@ -39,3 +39,25 @@
- type: ActiveRadio
channels:
- Common
+
+- type: entity
+ parent: BaseItem
+ id: CrimeAssistCartridge
+ name: crime assist cartridge
+ description: A cartridge that helps identify crimes and see appropriate punishment.
+ components:
+ - type: Sprite
+ sprite: _CorvaxNext/Objects/Devices/cartridge.rsi
+ state: cart-cri
+ - type: Icon
+ sprite: _CorvaxNext/Objects/Devices/cartridge.rsi
+ state: cart-cri
+ - type: UIFragment
+ ui: !type:CrimeAssistUi
+ - type: Cartridge
+ programName: crime-assist-program-name
+ icon:
+ sprite: _CorvaxNext/Icons/cri.rsi
+ state: cri
+ - type: CrimeAssistCartridge
+
diff --git a/Resources/Textures/_CorvaxNext/Icons/cri.rsi/cri.png b/Resources/Textures/_CorvaxNext/Icons/cri.rsi/cri.png
new file mode 100644
index 00000000000..b31d02763ca
Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Icons/cri.rsi/cri.png differ
diff --git a/Resources/Textures/_CorvaxNext/Icons/cri.rsi/meta.json b/Resources/Textures/_CorvaxNext/Icons/cri.rsi/meta.json
new file mode 100644
index 00000000000..c7e9076f0fb
--- /dev/null
+++ b/Resources/Textures/_CorvaxNext/Icons/cri.rsi/meta.json
@@ -0,0 +1,14 @@
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "license": "CC0-1.0",
+ "copyright": "IcedQuinn",
+ "states": [
+ {
+ "name": "cri"
+ }
+ ]
+}