SampSharp v1.x Migration
Capture the Flag has been migrated from SampSharp v0.x (Legacy) to SampSharp v1.x, the modern rewrite built from the ground up for the open.mp server.
This migration enables the game mode to use current .NET technologies, including .NET 10 on 64-bit Linux, and introduces SampSharp.OpenMp.Entities, the ECS framework for SampSharp v1.x.
For more information about the differences between SampSharp versions and their platform support, see the SampSharp Platform & Version Support documentation.
What's Changed
- Migrate to SampSharp.OpenMp.Entities for open.mp x64 support by @DevD4v3 in #321
- Migrate Docker deployment to .NET 10 and open.mp x64 by @DevD4v3 in #322
- Replace server.cfg patching with config.json updates by @DevD4v3 in #323
- refactor!: decouple CurrentMap from MapCollection by @DevD4v3 in #324
- refactor!: replace static MapCollection with instance-based service by @DevD4v3 in #325
- refactor!: move gameplay settings to their respective modules by @DevD4v3 in #326
- Refactor flag state management to prevent invalid game states by @DevD4v3 in #327
- refactor: replace async void handlers with async Task by @DevD4v3 in #328
- refactor: remove workaround for event exception logging by @DevD4v3 in #329
- feat: introduce configurable weapon catalogs by @DevD4v3 in #330
- refactor: add defensive checks for weapon catalog changes by @DevD4v3 in #331
- feat: add support for runtime weapon catalog switching by @DevD4v3 in #333
- refactor: remove index-based weapon catalog lookups by @DevD4v3 in #334
- refactor: leverage open.mp RemovePlayerWeapon API by @DevD4v3 in #335
- refactor: encapsulate match outcome logic in MatchResult by @DevD4v3 in #336
- refactor: extract flag state reset logic by @DevD4v3 in #337
- refactor: clarify flag return terminology by @DevD4v3 in #338
- refactor: make MatchResult dependencies explicit by @DevD4v3 in #339
- refactor: make team balancing dependencies explicit by @DevD4v3 in #340
- chore: override vulnerable SQLitePCLRaw native dependency by @DevD4v3 in #341
- chore(docker): download component bundle from release assets by @DevD4v3 in #342
- build: automate Linux and Windows server distributions by @DevD4v3 in #343
- feat: add display names for weapon catalogs by @DevD4v3 in #344
- feat: add rifle-only weapon catalog by @DevD4v3 in #345
- feat: add custom display names for weapons with non-user-friendly enum names by @DevD4v3 in #346
- feat: add heavy and war weapon catalogs by @DevD4v3 in #347
- refactor: clarify player extension method contracts by @DevD4v3 in #348
- refactor: simplify account authentication flow by @DevD4v3 in #349
- refactor: simplify player authentication workflow by @DevD4v3 in #350
- fix(sqlite): restore REGEXP constraint for player names by @DevD4v3 in #351
- feat: automatically create database schema on startup by @DevD4v3 in #353
- feat: make ACK limit configurable by @DevD4v3 in #354
- feat: introduce GunGame mode with CTF integration by @DevD4v3 in #355
- feat: add additional GunGame weapon progressions by @DevD4v3 in #356
- feat: enforce GunGame weapon progression by @DevD4v3 in #357
- refactor: split weapon management into dedicated systems by @DevD4v3 in #358
- refactor: remove technical Models folder by @DevD4v3 in #359
- refactor: standardize gameplay reward definitions by @DevD4v3 in #360
- test: add domain tests for GunGame mode by @DevD4v3 in #361
- refactor: move team sound playback into
TeamSoundsby @DevD4v3 in #362 - feat: add melee weapon catalog by @DevD4v3 in #363
- feat: add powerful weapon progression by @DevD4v3 in #364
- fix: handle explosive and fire-based kills in GunGame by @DevD4v3 in #365
- feat: add Pleasure Domes map by @DevD4v3 in #366
- feat: add support for GunGame wins as a player statistic by @DevD4v3 in #367
- feat: add centralized role-based authorization for commands by @DevD4v3 in #368
- feat: protect server owner from privileged player actions by @DevD4v3 in #369
- Migrate object maps from Pawn filterscripts to SampSharp.MapObjects by @DevD4v3 in #370
- refactor(di): introduce helper methods for service registrations by @DevD4v3 in #371
- refactor(di): replace service dictionaries with FrozenDictionary by @DevD4v3 in #372
- fix(commands): reduce self-kill exploit at low health by @DevD4v3 in #373
- refactor: improve GunGame domain naming by @DevD4v3 in #374
- refactor: improve weapon catalog domain naming by @DevD4v3 in #375
- refactor: decouple match result announcement by @DevD4v3 in #376
- feat: add match result GameText summary by @DevD4v3 in #377
- refactor: clarify GameText color terminology by @DevD4v3 in #378
- refactor: reduce match result GameText duration by @DevD4v3 in #379
- refactor: simplify GetAvailabilityMessage signature by @DevD4v3 in #380
- refactor: improve IsServerOwner API by @DevD4v3 in #381
- fix: update audio asset URLs by @DevD4v3 in #382
Full Changelog: v9.6.2...v10.0.0