Vantz Stockwell
16f378eada
feat: Add CorrosionTeleportGUI uMod plugin — in-game teleport CUI
...
Test Asgard Runner / test (push) Successful in 2s
Standalone C# uMod plugin that provides a full-screen CUI teleport
interface for Rust game servers, integrating with NTeleportation.
Features:
- /tpgui chat command opens tabbed overlay (Teleport, Homes, Warps, Settings)
- 4x5 player grid with search filtering and pagination for TPR
- Home management (teleport, set, delete) via NTeleportation API
- Server warp list with teleport buttons
- Incoming TPR accept/deny popup with 30s auto-dismiss
- Settings tab showing cooldowns, limits, NTeleportation status
- Oxide-orange color scheme matching Corrosion brand
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 01:12:34 -05:00
Vantz Stockwell
9d045256e3
feat: Add Loot Manager plugin skeleton (Phase 4)
...
Test Asgard Runner / test (push) Successful in 2s
Created skeleton implementation for first paid module ($9.99).
Plugin Features:
- Loot profile system with container multipliers and custom loot tables
- OnLootSpawn/OnEntitySpawned hooks for container loot modification
- Six container types: normal, elite, mine, barrel, food, military
- Chat command: /loot.profile [name] for admin profile switching
- Per-item config: shortname, min/max amount, spawn chance, skin ID
Status:
- Hooks functional, profile switching works via chat command
- Dashboard UI integration pending future iteration
- Auto-deploy system pending future iteration
- Migration 009 already includes module seed data
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-15 14:46:49 -05:00
Vantz Stockwell
f29524e633
feat: Implement Player Retention Analytics System (Phase 2.2)
...
Backend:
- Add player_sessions table (migration 004) for session tracking
- Implement retention calculation queries (24h/48h/72h post-wipe)
- Add /api/plugin/player-event endpoint for join/leave tracking
- Add /api/analytics/retention endpoint with CSV export
- Track unique players, session duration, new vs returning ratio
Frontend:
- Create PlayerRetentionView with ECharts retention curves
- Add multi-wipe comparison (last 3/6/10/20 wipes)
- Display summary metrics and detailed wipe table
- Add /retention route to router
Plugin:
- Update CorrosionCompanion.cs to send player events to new endpoint
- Track player join/leave with license_key authentication
Enables data-driven wipe timing optimization by answering:
"What percentage of players return 24h/48h/72h after a wipe?"
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-15 14:23:21 -05:00
Vantz Stockwell
590765fbbc
feat: Complete Phase 1 backend services and WebSocket/NATS bridge
...
Implements all remaining backend infrastructure for Corrosion platform.
Backend Services (5 new):
- license.rs: License validation, activation, check-in with NATS token generation
- map_manager.rs: Map upload/rotation with SHA-256 checksums, circular advancement
- health_checker.rs: Post-wipe verification with retry loop and backoff
- backup_manager.rs: Tar.gz backups with retention policy (last 10), recursive upload
- scheduler.rs: Tokio-cron integration for scheduled wipes with NATS events
WipeEngine Orchestration (wipe_engine.rs):
- execute_wipe(): Master orchestrator managing full lifecycle
- execute_pre_wipe(): Countdown warnings, backups, player kicks
- execute_wipe_actions(): Map/plugin deletion, seed rotation, Steam updates
- execute_post_wipe_verification(): Health checks with restart attempts
- execute_rollback(): Failure recovery with backup restore
- JSONB execution logs, NATS status events, service composition pattern
WebSocket/NATS Bridge (ws.rs):
- JWT authentication via query parameter
- License-scoped NATS subscriptions (corrosion.{license_id}.*)
- Bi-directional: NATS→WebSocket event forwarding, WebSocket→NATS publishing
- Axum 0.8 with ws feature, auto Ping/Pong handling
Panel Adapter Fixes:
- AMP/Pterodactyl/Companion adapters fully wired
- RCON command execution, file operations, Steam update triggers
Fixes:
- Added ws feature to Axum dependency
- Fixed Message::Text() type conversions (String→Utf8Bytes via .into())
- Fixed BackupInfo FromRow derive
- Fixed recursive async with Box::pin pattern
- Fixed async JobScheduler::new() constructor
- Removed manual WebSocket Ping/Pong handler
Compilation: 0 errors, 327 warnings (unused vars/functions)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-15 12:07:01 -05:00