ModernUO/.github/ISSUE_TEMPLATE/system.yml
2026-07-08 12:34:29 +02:00

295 lines
9.5 KiB
YAML

name: "⚙️ Engine / System"
description: Create a new ticket for a new or changed Ultima Online engine, subsystem, controller, service, configuration, or cross-content system
title: "System: <engine or system name>"
labels: ["ultima-online", "triage", "system"]
body:
- type: input
id: name
attributes:
label: Engine / System Name
description: The engine, subsystem, controller, service, configuration area, or cross-content system name.
validations:
required: true
- type: dropdown
id: request-type
attributes:
label: Request Type
multiple: true
options:
- New Engine / System
- Existing System Change
- Bug / Regression
- Parity / Migration Info
- Configuration Setting
- Data File / Import / Export
- Persistence / Serialization
- Startup / Shutdown / Lifecycle
- Event Hook / EventSink
- Timer / Scheduler / Controller
- Command / Targeting / Staff Tool
- Gump / UI / Client Presentation
- Performance / Hot Path
- Security / Exploit / Staff Safety
- Tests / Tooling
- Documentation / Operator Runbook
- Custom / Unknown
validations:
required: true
- type: dropdown
id: system-area
attributes:
label: System Area
multiple: true
options:
- Core Server
- UOContent Engine
- RUOContent Custom System
- Configuration / JsonConfig
- Startup / Lifecycle
- World Save / Load
- Accounts / Access
- Networking / Packets
- Commands / Targeting
- Gumps / UI
- EventSink / Generated Events
- Timers / EventScheduler
- Serialization / Persistence
- Regions / Maps / Facets
- Spawns / Encounters
- Loot / Rewards
- Quests / Narrative
- Crafting / Economy
- Housing / Multis
- Vendors / Services
- Skills / Stats / Races
- Combat / Magic
- Items / Mobiles
- Monitoring / Logging
- Tests / Tooling
- Unknown / Other
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the engine/system behavior, problem, requested change, and the intended player-facing or operator-facing result.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, ModernUO docs/code, screenshots, logs, traces, crash reports, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official mechanics, publish, or ruleset note
https://www.uoguide.com/... — mechanics/history context
https://github.com/ServUO/ServUO/... — engine/system precedent
Log/trace/crash ID — observed behavior or failure mode
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era / Ruleset
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- RebirthUO Custom
- Era-Independent / Infrastructure
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish, release, or custom shard milestone?
placeholder: unknown
validations:
required: false
- type: dropdown
id: implementation-layer
attributes:
label: Implementation Layer
multiple: true
options:
- Projects/Server Core Engine
- Projects/UOContent Base Content
- Projects/RUOContent Shard Custom Layer
- Distribution/Data
- Distribution/Configuration
- Tests
- Tooling / Scripts
- Documentation
- Unknown / Needs Discovery
validations:
required: true
- type: dropdown
id: affected-loops
attributes:
label: Affected Gameplay / Operator Loops
multiple: true
options:
- PvM
- PvP / Felucca Risk
- Economy / Rewards
- Crafting / Resources
- Housing / Storage
- Skills / Stats / Progression
- Magic / Combat
- Quests / Events
- Spawns / Encounters
- Travel / Facets / Regions
- Vendors / Services
- New Player Progression
- Veteran / Prestige
- Client Presentation
- Staff Operations
- Server Stability
- Save / Restore / Deployment
- Unknown
validations:
required: true
- type: textarea
id: current-expected-behavior
attributes:
label: Current / Expected Behavior
description: |
Describe current behavior, desired behavior, repro steps if this is a bug, and what should stay unchanged.
placeholder: |
Current:
Expected:
Repro / trigger:
Should not change:
validations:
required: true
- type: textarea
id: configuration-gates
attributes:
label: Configuration / Gates
description: |
Add config keys, default values, Core.* era gates, feature flags, ServerConfiguration/GetSetting/GetOrUpdateSetting use, modernuo.json settings, JsonConfig files, shard overrides, and operator-facing toggles.
validations:
required: false
- type: textarea
id: lifecycle-ownership
attributes:
label: Lifecycle / Ownership
description: |
Describe ConfigurePrompts, Configure, Initialize, CallPriority ordering, EventSink subscriptions, generated events, startup/shutdown, cleanup, ownership of static state, and whether the system can be disabled or reloaded.
validations:
required: false
- type: textarea
id: data-persistence
attributes:
label: Data / Persistence / Save Compatibility
description: |
Describe serialized fields, versioning, world save/load impact, migration needs, JSON/cfg data, source-generated serialization, backward compatibility, rollback behavior, and cleanup of saved entities or controllers.
validations:
required: false
- type: textarea
id: events-timers-threading
attributes:
label: Events / Timers / Threading
description: |
Describe EventSink hooks, generated events, Timer use, EventScheduler scheduling, async/threading expectations, single-threaded game-loop assumptions, cancellation, disposal, and hot-path constraints.
validations:
required: false
- type: textarea
id: admin-ui-tools
attributes:
label: Commands / Gumps / Admin Tools
description: |
Add staff commands, targeting flows, gumps, diagnostics, logging, audit trails, permissions/access levels, operator workflows, and any public/private communication boundaries.
validations:
required: false
- type: textarea
id: content-integration
attributes:
label: Content Integration
description: |
List related items, mobiles, regions, spawns, quests, loot tables, crafting definitions, housing/multi definitions, packets, gumps, clilocs, and data files that interact with this engine/system.
validations:
required: false
- type: textarea
id: performance-risk
attributes:
label: Performance / Scale Risk
description: |
Describe expected call frequency, hot paths, allocations, timers, dictionary/list sizes, world scans, save-time work, startup cost, network traffic, and stress cases.
validations:
required: false
- type: textarea
id: security-fairness-risk
attributes:
label: Security / Fairness / Exploit Risk
description: |
Describe exploit or dupe risk at a safe public level, staff advantage risk, permission boundaries, player-facing fairness, griefing/bot risk, economy abuse, and sensitive details that should stay out of public issue text.
validations:
required: false
- type: textarea
id: side-effects
attributes:
label: Side Effects / Balance Impact
description: |
Describe era/ruleset impact, PvP counterplay, PvM risk/reward, gold or item faucets/sinks, housing/storage impact, client compatibility, shard policy choices, and expected monitoring signals.
validations:
required: false
- type: textarea
id: testing-monitoring-rollback
attributes:
label: Testing / Monitoring / Rollback
description: |
Add focused tests, broad suites, manual verification, logs/metrics to monitor, backup/restore needs, rollback plan, feature disable plan, and post-publish checks.
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known classes, methods, data files, config files, tests, docs, or code anchors if known. Note whether Projects/Server core changes are required or whether UOContent/RUOContent can contain the work.
placeholder: |
Classes/methods:
Data/config files:
Tests:
Docs/runbook:
Core boundary:
validations:
required: false