// DEVLOG

LusofoLine4FUN — server changelog & updates

Market polish — jackpot & coinflip rooms, battles rework, upgrader redesign, keys removed, redeem codes & admin tools
NEW FIX BALANCE
// NEW — Jackpot & Coinflip rooms
  • Jackpot roulette strip — the jackpot now resolves with a proportional roulette strip: each player gets a colored segment sized to their win chance, and the strip spins live via SSE before revealing the winner
  • Coinflip lobby — after creating a flip, an overlay shows your flip ID and value while you wait; a cancel button lets you pull out before anyone joins
  • Coinflip room page — joining a flip now redirects both players to a dedicated room (/market/coinflip/room) showing both sides and a coin-spin animation before the result
// NEW — Case Battles improvements
  • Leave battle lobby — non-creator players can now leave a waiting or full lobby before the battle starts; cases are refunded instantly
  • Battle start reliability fix — the room page now re-fetches full battle data from the server after receiving the start signal instead of relying on the SSE payload; eliminates blank result screens for late-joining players
  • Strip animation fix — the roll animation was occasionally snapping instantly to the result; fixed a CSS reflow ordering bug where the transition was registering and firing in the same paint frame
// NEW — Upgrader redesign
  • Ring-only wheel — the upgrader wheel is now a clean arc-stroke ring: a thick gold arc for your win zone, red for the lose zone, on a dark background track — no filled sectors
  • Slower spin — animation extended from 4.4s to 6.5s with a steeper ease-out curve for a more satisfying deceleration
  • Live skin prices — upgrader target prices now update after each trade using a 90/10 blend with the sale price, keeping values accurate over time
// NEW — Redeem codes
  • Code redemption page — players can now redeem promotional codes at /market/redeem for points or skins; each code can be configured for single or multi-use
  • Admin code management — the admin panel has a new section to create, view and delete codes; supports points rewards and specific skin drops
// NEW — Admin tools
  • Market inventory management — admins can now view, remove and give market skins to any player directly from the admin panel without touching the database manually
// BALANCE
  • Keys removed — cases no longer require a key to open; just own the case and open it. The + KEY button, key counter and key purchase flow are gone
  • Economy reset — all market inventories cleared and all player wallets reset to 25,000 pts for a fresh start
  • Case-unboxed item quicksell penalty — items obtained from cases now sell at 20% of market value (vs 50% for traded/bought items); clearly shown in the sell confirmation
// FIX
  • Stickers now visible in market listings — applied stickers were missing from P2P listing cards; they now show as small icons under the skin name
  • Favourite star overlapping float value — the star badge was sitting on top of the float number on inventory cards; moved down to clear it
  • Shop give/take not updating — admin give/take was only firing RCON (async) and relying on a 1s delay to read updated data; now writes directly to SQLite first so the panel reflects the change immediately
  • Recent sales & price data returning null — market listing queries were joining on inventory rows that no longer exist post-sale; fixed with LEFT JOIN + COALESCE using skin_id stored at listing creation time
  • Case counter consolidation — three separate owned-case counters (wallet bar, market landing, nav) could briefly show different values; all now driven by the same SSE wallet_update event pushed after every open
Market economy hardening — case pricing, house edge, jackpot, multi-open animation & Discord DMs
NEW FIX BALANCE INFRA
// BALANCE — case & capsule repricing
  • All 23 cases repriced to 70% EV — every case cost was calculated against real market_prices DB values using actual drop rates (79.9% blue → 0.26% gold) and condition weights; the house edge is now a consistent 30% across every container. Previous prices ranged from 0.98× to 5.67× EV (pure profit for players)
  • All 19 Katowice / Cologne 2014 capsules repriced — same 75% EV target applied to sticker capsules using real sticker market prices; Titan Kat14 repriced from 45k → 5.6M pts
  • Buy key button added — keys can now be purchased directly from the Cases page wallet bar; the + key label was removed from crate price cards since keys are a separate purchase
// BALANCE — Mines house edge
  • Mines multiplier reduced by 15% — all payouts now use HOUSE_EDGE = 0.85 applied to the mathematically fair odds; long-term play is always negative EV
  • Bet limits tightened — minimum raised from 10 → 1,000 pts, maximum lowered from 50,000 → 5,000 pts; eliminates micro-grinding and limits single-session swings
// BALANCE — Economy
  • 8% market sell tax — P2P trades now destroy 8% of the sale price; buyers pay full price, sellers receive 92%. Shown explicitly in the buy confirmation dialog so it is never perceived as a bug
  • Prestige costs 25,000 pts — prestiging now has a real point cost deducted at confirmation; the /rank GE line notes the price
  • /prestige two-step confirmation/prestige shows cost and opens a 30-second window; /prestige y confirms and spends the points; the window expires automatically via a task callback
// NEW — Jackpot improvements
  • Jackpot entry withdrawal — players can now remove their own items from an open pot before the spin using a red ✕ button on their entry row
  • Per-entry pot display — the pot now shows each deposited skin (name, condition, value, win chance %) with an animated probability bar, instead of per-player summaries
// NEW — Multi-open strip animation
  • ×3 / ×5 / ×10 now plays stacked roll strips — multi-open no longer shows a spinner card grid; all N cases are fetched in parallel then N independent reel strips animate simultaneously, each revealing its result after the 6-second roll — the same experience as single open, stacked vertically
  • Each strip labeled #1…#N — small index label in the top-left corner of each strip for easy tracking
// NEW — Discord ticket DMs
  • Bot DMs owner on every ticket event — color-coded embeds sent on ticket created (orange), replied (blue), closed (green) and deleted (red); works for both in-game and Hub tickets
  • Source field in embed — each DM shows whether the ticket came from in-game or from the Hub
  • Hub ticket notifications wired up — Hub ticket creation (POST /hub/api/tickets) previously had no notification path; now fires the same DM as in-game tickets via a shared notify.js module
// FIX
  • DM inbox broken — clicking conversations or starting a new DM did nothing; root cause was pollTimer referenced in clearTimeout() but never declared, throwing a ReferenceError that silently killed openThread() on load
  • Footer attribution — all three sites now credit built by yako · @moriamvr (Discord handle) in the page footer
  • perf.js / favicon / og-image returned 401 — these assets were being caught by the auth middleware before the static file handler; fixed with explicit pre-auth app.get() routes
Hub & Market upgrades — full-screen layout, profile overhaul, SEO & performance
NEW FIX PERF INFRA
// NEW — Hub profile overhaul
  • /hub/ now redirects to your profile — the old minimal stats page is gone; the Hub home goes straight to /hub/profile/<you>
  • Three-tab profile — Posts, Inventory and Stats all live on the same page; no separate routes
  • Inline bio editing — click your bio to edit and save in place; no separate settings page required
  • Pin a post — pin any of your posts to the top of your profile; unpin with one click
  • Inventory tab on profiles — shows your 40 highest-value Market skins; visible to other players on your public profile
// NEW — Market landing page
  • Market home redesigned — wallet bar (pts / keys / cases / nametags + VIP badge), quick-nav grid to all sections, price movers panel (top gainers & losers), and a recent unboxings feed
  • Rarity stripe on skin cards — a solid left-side color bar now makes blue / purple / pink / red / gold rarity immediately readable through the glass card effect
// PERF
  • Price history pruned — DB was at 888 k rows / 74 MB after 5 days; pruned to 116 k rows / 8.8 MB. History is now capped at 60 entries per skin+condition, keeping only the most recent data
  • Market listing N+1 fixed — each listing was doing a separate DB query to enrich skin data; now resolved in a single JOIN
  • Sticker price batch query — sticker valuation on inventory pages was issuing one SELECT per sticker; now fetches all in one query
  • HTTP gzip enabled — Nginx and the Node.js layer now compress responses; SSE streams excluded
// INFRA — full-screen layout + SEO
  • All three sites fill the screen — max-widths raised from ~960–1100 px to 1800 px with clamp() padding; mobile and wide breakpoints updated across Sites 1, 2 and 3
  • Social sharing images — all public pages now have og:image and twitter:card tags; a branded 1200×630 preview image is shown when sharing any link
  • Rich JSON-LD on every page — page-specific structured data added to all public pages: FAQPage on commands (eligible for Google FAQ snippets), SportsEvent on tournament, Blog on devlog, ProfilePage on player profiles, WebPage + breadcrumbs on the rest
  • Sitemap & robots.txt updated — added /news to sitemap, added lastmod and changefreq to all entries; Hub/Market/admin paths blocked from crawlers
Platform expansion — Hub social, Market simulator, real CS:GO prices & live battles
NEW FIX PERF INFRA
// NEW — LusofoLine Hub (Site 2)
  • Social platform at /hub — player profiles, follow/friend system, post feed, real-time DMs
  • Career stats on profiles — Kills, K/D, HS% now use all-time career kills (not the ranking counter that resets on rank-up). Affects both the hub home view and individual profile pages
  • Real-time messages via SSE — DM inbox updates instantly without page reload; replaced the old 5-second polling loop
  • Avatar support — players can upload a profile picture; shows on profile cards, DMs and leaderboards
// NEW — LusofoLine Market (Site 3)
  • Case & capsule openings — open CS:GO cases and sticker capsules with animated reveals; multi-open (up to 10 at once) with synchronized reel animation
  • Skin catalogue — browse all 400+ skins by collection; direct buy at market price with per-condition pricing
  • Player inventory — view, filter and manage all owned skins, stickers and pins
  • Player-to-player market — list items for sale, browse listings, buy from other players; trade offers with accept/decline
  • Trade-up contract — sacrifice 10 skins of the same rarity for a chance at a higher-tier skin from the same collection
  • Upgrade — wager any item (skin, sticker or pin) against a higher-value target; chance is proportional to value ratio with 15% house edge. Pins and stickers now supported as wager and target
  • Case Battles — 2-4 players open cases simultaneously in real-time; highest total value wins all cases. Results broadcast live via SSE to all participants
  • Jackpot, Coinflip, Mines — additional gambling modes using market inventory items
// NEW — Real 2026 CS:GO prices
  • 438 items priced from real market data — skins and knives fetched from the Steam market API; pins and stickers hand-curated from current listings. 1 USD = 150 server points
  • Per-item, per-condition prices — FN/MW/FT/WW/BS computed from the Factory New Steam price using CS:GO wear multipliers. Not rarity ranges — actual 2026 valuations
  • Notable prices: AWP Dragon Lore FN → 420,000 pts · Butterfly Knife Fade FN → 450,000 pts · AK-47 Vulcan FN → 146,000 pts · Titan Holo Kat14 → 15,000,000 pts
  • Skinport fallback — items with no active Steam FN listing (rare skins, discontinued cases) fetch price from Skinport's bulk API with COND_MULT back-calculation
  • Price fluctuation — market prices drift ±3% every 5 minutes, capped at 2× base (floor 0.55×). Mimics a live market without wild swings. Previously was ±8% per minute with a 3× ceiling
  • Auto-reseed on restart — if a stored price has drifted more than 20% from the real baseline, it resets on server start to keep the economy grounded
// NEW — Real-time infrastructure
  • SSE pub/sub module — server-sent events used across Hub and Market for live updates: wallet balance, key/case counts, battle results, DMs
  • Battle results pushed to all players — previously the player who created the battle never saw the result screen; now all participants receive the outcome via SSE the moment it resolves
  • Wallet updates live — points, keys and case counts refresh in the nav bar instantly after every case opening, purchase or battle outcome
// FIX
  • Battle double result for the joiner — result screen was appearing twice (once from the HTTP response, once from the SSE event). Fixed with a shownViaHttp Set that gates the SSE handler
  • Wallet update stale read in battles — the points counter after a battle was reading from a DOM element being simultaneously rewritten; now reads from the persistent nav bar element instead
  • Catalogue buy button had no function — the buySkin() call existed in button markup but the function was never defined. Now implemented
  • Market root redirect — visiting /market/ now goes straight to the market listing instead of the old overview page
Site redesign — unified public pages, live status header & customs upload fix
NEW FIX
// NEW — public pages
  • Unified header across all public pages — wordmark, tagline, and live status dots for FFA / CAS / TTT with player counts that auto-refresh every 30s
  • Unified footer with quick nav, Discord & Buy Me a Coffee links and build info — same look everywhere
  • Shared public.css — all 12 public pages now speak the same visual language (CRT green, VT323 font, scanlines, matrix vibe)
  • Landing page redesigned with hero box, cards grid, connect-boxes and devlog preview
// FIX — admin panel
  • Custom items upload now accepts files up to 200 MB — previously nginx was cutting requests above 1 MB, which surfaced as "NetworkError" in Firefox when uploading weapon / player models
  • Admin tickets list cleaned up — 2 garbage rows removed
Clans performance fix — task_export optimized
PERF
// PERF
  • clan export optimized — the periodic clan data export was querying the database twice per clan member (once for the total kills, once for the JSON output); now queries once and reuses the result. Halves the number of database reads per export cycle
Admin panel improvements & SEO — site indexed on Google
FIX INFRA
// FIX — admin panel
  • User delete now syncs immediately — deleting a player account now removes their entry from ranking and accounts data right away, without waiting for the next map change
  • Users table layout fixed — the Shop inventory column was pushing the Delete button off-screen for players with large inventories; it now appears after Playtime
// INFRA — SEO
  • All public pages now have full SEO meta tags — title, description, keywords, Open Graph (og:title, og:description, og:url), and canonical URLs
  • Google Search Console verified and sitemap submitted — site is now indexed
  • Landing page has JSON-LD Organization schema for richer search results
TTT — roles, weapons, /check, infinite ammo, smart replace improvements & tournament updates
NEW FIX INFRA
// NEW — TTT gameplay
  • Weapons by role — Innocents spawn with knife only; Traitors get knife + USP; Detectives get knife + Deagle. No more default loadout revealing roles
  • Infinite ammo in TTT — ammo is replenished on every weapon switch so rounds never stall
  • Knife forced during freeze time — players can't draw a gun and reveal their role before the round starts
  • /check — full rework: all roles can examine dead bodies to reveal the victim's role; Detectives can additionally scan living players via crosshair (up to 3 scans per round). Results appear as on-screen HUD announcements
  • Detective assigned at 2+ players — was previously requiring 6 players
// NEW — Tournament
  • Registration window extended to 2 minutes — gives new players enough time to download assets and connect before the bracket starts
  • /guns and /loadout blocked during tournament — including warmup phase; only /inventory remains available
// FIX
  • Round-end MOTD was rendering with a white background — now matches the dark CRT theme used across the server
  • Killfeed disabled in TTT — kill notifications were leaking role and team information mid-round
  • "Attacked a teammate" messages suppressed in TTT — these were revealing who shot whom
  • Weapon pickup sounds suppressed during role assignment — the sound of picking up a Deagle or USP was giving away the Detective and Traitor
  • Round-end lag fixed — MOTD was being sent to all players simultaneously causing a frame freeze; delivery is now staggered at 50ms intervals
  • Traitors can no longer pick up the Deagle — the Detective's weapon could previously be looted by Traitors after a kill
// INFRA — Smart Replace
  • p_ and w_ models now applied automatically — Smart Replace was only replacing the first-person view model (v_); third-person (p_) and world (w_) models now update the canonical filenames so custom weapons are visible to all players and when dropped
TTT fixes — bots, scoreboard exploit, ranking isolation & win stats
FIX NEW
// FIX
  • Bots removed from TTT — bot manager had no TTT guard and was overriding bot_quota 0 every 5 seconds, spawning 4 bots whenever there was 1 or fewer players
  • Traitor identity no longer visible — Traitors were assigned to the T team, making them immediately identifiable on the Tab scoreboard; all players are now CT and win conditions are detected by the plugin directly
  • Kills and deaths on TTT no longer affect the FFA ranking — TTT combat was incorrectly counting toward career kills, deaths and headshots on the shared ranking
  • Starting map fixed — server was booting on de_dust2 with no TTT weapon or player spawns; now starts on a proper TTT map
// NEW
  • +50 points flat bonus for all players on the winning team at round end — applies to dead players too, not just survivors
  • TTT win stats — Innocent, Detective and Traitor wins are now tracked per account; use /tstats in-game to check your record
TTT server fully integrated — shop, skins, ranks, AFK kick and more
NEW FIX INFRA
// NEW — TTT server fully live
  • TTT server is now fully integrated — 2.82.111.93:27018 — Trouble in Terrorist Town, 24/7
  • Full shop, skins, ranking, economy, /bet, daily challenges, VIP, clans, chat tags and all other systems are active on TTT
  • AFK kick now active on all three servers — 30s warning, auto-kick at 40s idle
  • TTT hostname updated: TTT | Trouble in Terrorist Town | SHOP RANKS SKINS | LusofoLine4FUN
  • All TTT in-game text fully translated to English — roles, kill messages, karma, round results
// FIX — plugin guards
  • /rps, /duel and /tournament disabled on TTT — these commands don't fit TTT round-based gameplay
  • AFK kick was incorrectly FFA-only — now covers Casual and TTT as well
// INFRA
  • Web panel, Discord bot, live page and landing page all updated with TTT as a third server
  • Discord bot presence now shows FFA / CAS / TTT player counts
  • UDP log listener active on port 27118 — TTT events stream to the admin panel live feed
  • Stress tested at 600+ concurrent connections — all three servers and the web panel held stable
Tournament fix + Ko-fi donations now available
FIX NEW
// FIX
  • Tournament server not joinable fixed — firewall was blocking port 27016/udp; players were redirected to the tournament server but couldn't connect, causing the match to end immediately with no winner
// NEW
  • Ko-fi donations now accepted on the Donate page — credit and debit cards accepted, no PayPal account needed
Custom items system fixed — 3 bugs, no more stale models
FIX
// FIXES
  • Loadout menu on FFA fixed — timing race caused the Casual loadout system to activate on FFA during map changes, stripping weapons and leaving players with only a deagle
  • Custom player models invisible fixed — shop skin system was overriding custom models on every spawn; custom model now always re-applies after the shop
  • Wrong weapon skins fixed — submitting new custom items after deleting old ones reused the same filenames (cw1.mdl, cw2.mdl...), so clients served stale cached models. File IDs now use a permanent counter that never recycles
Engine crash fixed + full panel SQLite migration
FIX INFRA
// FIXES
  • Engine crash loop on both servers fixed — root cause: missing cp1 player model referenced in SQLite custom_items table; engine crashed on every map load during precache
  • Admin panel restart returning "fail" resolved — was a consequence of the crash loop, not a panel bug
  • Custom items submitted via admin panel were not reaching the server — panel wrote to legacy .txt while the plugin reads from SQLite; 9 items synced and split-brain eliminated
// INFRA
  • Admin panel fully migrated to SQLite — all endpoints now read and write directly to the database
  • Migrated: clans, custom tags, custom items, tickets, account playtime
  • No more legacy .txt file access — single source of truth for all game data
Bot system overhaul — rifles on FFA & Casual
NEW
// NEW
  • Bots now use rifles — T side gets AK47, CT side gets M4A1 (previously defaulted to USP/Glock)
  • All pistols stripped every 0.5s — Glock, USP, P228, Deagle, FiveSeven, Elite
  • Casual server bots enabled — 4 bots, expert difficulty, 500 HP, auto-kicked when 2+ humans join
  • Bot manager re-enabled on FFA server (plugin was accidentally commented out)
Discord bot improvements & admin panel fixes
NEW FIX
// NEW
  • !stats Discord command — full stats embed: rank, position, K/D, HS%, points, playtime, clan, VIP status, daily challenges progress
  • Server-wide nickname changes disabled — 62 Discord roles updated, members can no longer change their own apelido
// FIXES
  • Admin panel → BOT tab: Unlink button now works (was returning 403 Forbidden)
  • Admin panel → BOT tab: Linked accounts list now reads from SQLite (was showing stale .txt data)
  • Admin panel → BOT tab: Manual link now saves to SQLite (was writing to legacy .txt, causing ghost duplicates)
  • !stats crash fix 1 — RANK_NAMES undefined → corrected to RANK_ROLES[rank].name
  • !stats crash fix 2 — clan members are objects {a, k} not strings; check was calling .toLowerCase() on an object → TypeError
  • Landing page challenges widget — /api/challenges/today missing from Nginx whitelist → 404 from public URL; added to proxy rules (also added /api/mode and /api/vip/status/)
Connectivity overhaul — 11 bugs fixed, stress tested
FIX PERF INFRA
// FIXES
  • Discord bot now supervised by watchdog — auto-restarts on crash
  • /news page 404 via public URL fixed (Nginx route was missing)
  • VIP grant/revoke from admin panel no longer returns 403 Forbidden
  • RCON console WebSocket no longer disconnects after 60s idle (heartbeat added)
  • Discord account linking now works for players with 0 kills (newly registered)
  • !link now sends expiry feedback when verification code times out (5 min)
  • Random 5-minute bans eliminated — votekick/voteban threshold raised to 75%
  • Bot respawn console spam removed (6 leftover debug prints purged)
  • Discord invite link updated across all files (motd, tips, help menu, site)
  • /top15 and /prestige commands restored in-game (dropped during SQLite migration)
  • Kill point messages restored — chat now shows +pts (HS/KNIFE) and +N VIP bonus on every kill
// STRESS TEST
  • Both game servers, web panel and Discord bot running simultaneously
  • Peak throughput: 7852 req/sec on admin panel, 6522 on /fame, 5536 on live API
  • 20 WebSocket RCON connections with 200 messages — 0 errors
  • CPU peaked at 32% total capacity (8 cores), RAM +100 MB, load 1.17
  • System stable — no dropped connections, no OOM, no lag on either server
No bullet hole decals on FFA
FIX
  • Bullet hole marks on walls are now completely removed on FFA maps
  • They were giving a false impression of missing shots — even with 100% accuracy enabled, holes would appear where bullets technically hit
  • Walls stay clean — aim feedback is now purely from the damage numbers and hit sounds
Casual server is live — CS:GO maps, team play, same ranks & shop
NEW
  • Second server now live on 2.82.111.93:27017
  • Classic team-based CS on CS:GO maps — dust2, mirage, inferno and more
  • Same account system — your rank, points, skins and clan carry over
  • Standard CS rules: buy phase, freezetime, friendly fire off
  • Both servers share the same database — rank up on either, spend points on either
  • Admin panel updated with independent FFA and Casual control panels side by side
  • Live scoreboard on the site now has FFA / Casual tabs
  • Discord bot status embed shows both servers and their player counts
  • Bot presence updates in real time with total players online across both servers
No spread penalty — shoot accurately mid-air & on the move
NEW
  • Bullets now go exactly to the crosshair regardless of movement — running, jumping, bhopping
  • No more accuracy penalty mid-air or mid-bhop
  • Applies to all weapons: rifles, pistols, SMGs, LMGs
  • Makes FFA feel more frenetic — spray while strafing, shoot mid-jump, no stopping to aim
Discord bot rate limit fix
FIX
  • Discord bot was hitting a continuous rate limit — 100+ errors per minute logged
  • Root cause: bulk member fetch (gateway opcode 8) fired once per clan in ClanSync + once in VIP sync, every 60 seconds
  • VIP sync now only fetches linked users — no bulk fetch needed
  • ClanSync now does a single bulk fetch per cycle instead of one per clan
  • ClanSync startup delayed 30s to avoid overlapping with announcements
  • Bot log fully clean after the fix
Damage counter on bots + Discord improvements
FIX NEW
  • Damage numbers now appear when hitting bots, not just other players
  • Discord rank role and nickname now update automatically when you rank up — no need to run !refresh manually
  • Discord VIP role is now removed immediately when VIP expires or is revoked
  • New Discord command: !refreshall — syncs all linked accounts at once (admin only)
  • Server listed on Disboard — find us and help grow the community by bumping every 2h
Chat fixes & stability
FIX
  • /clan, /clantop and other clan commands were not responding — fixed
  • /tag command now works correctly without blocking other commands
  • Discord bot: duplicate instance removed (was running twice)
Server crash fixed for good + Chat Tags v7
FIX
  • Server crash on join: root cause found and eliminated
  • Server now runs stably with human players
  • Rank tags in chat: [S1], [GE], etc. showing correctly
  • /tag menu — choose which tag to show in chat (VIP / clan / custom / none)
  • Damage numbers now appear correctly on lethal hits
  • Wall spray (/secretspray) fixed — no longer displays upside down
Performance & stability
FIX PERF
  • In-game freezes eliminated — caused by 6 plugins writing to disk simultaneously
  • Admin panel: connection failures resolved
  • Server CPU usage reduced ~70% on the speed HUD
  • Damage numbers now show on all hits including lethal ones
  • Plugin save intervals staggered to avoid I/O spikes
Discord Bot + VIP
NEW
  • Discord bot live — 16 commands (!rank !top !online !challenges !clans !points !daily !give !bet ...)
  • Link your in-game account to Discord via /verify + !link
  • Automatic Discord roles by rank (Silver I → Global Elite) and prestige
  • Rank up announcements in #announcements channel
  • VIP[VIP] tag in chat, +50% points, gold trail, reserved slot
  • !daily on Discord: +50pts per day (+100pts for VIP)
  • /donate page added to the website
  • 54 auto-roles on Discord (18 ranks + 10 prestiges + 25 fame roles)
Tournaments + Player profiles + Fame
NEW
  • 1v1 tournament system — /join to register, automatic BO3 bracket
  • Dedicated tournament server with automatic redirect
  • Points prize for the winner
  • /player/:account page — stats, rank, shop items, challenges, playtime
  • /fame page updated with Prestige Masters category
  • Ranking: prestige column added
Daily challenges + Clans + Public website
NEW
  • Daily challenges (/ch) — 3 challenges per day, 150–1000 points reward
  • Pool of 13 rotating challenges: kills, headshots, knife, multikills, etc.
  • Full clan system — /clan create, invite, view info, ranking
  • Clan tag in chat: [LFL] etc.
  • /clans page with rankings and members
  • Public website at lusofoline.duckdns.org
  • /commands page with all available commands
  • Server management script: start/stop/restart/status/log
Support tickets, skins, SEO & ranking improvements
NEW
  • Support ticket system (/ticket)
  • Colored grenade trails (red = HE, yellow = flashbang, green = smoke)
  • Custom weapon skins: support for all 25 weapons
  • /top15 with prestige stars
  • Player profile page /player/:account on the website
  • Modern HUD sprite pack
  • Nginx reverse proxy + DuckDNS domain
  • Google Search Console + sitemap.xml
Account system + Chat tags + Duels
NEW
  • Account system — /register /login /logout /changepass
  • Rank tags in chat ([GE], [#1 GE], etc.)
  • Welcome message on connect showing rank and Discord info
  • Bot manager — bots leave when enough human players are online
  • /secretspray — place a custom spray on any wall
  • Rotating tips in chat every 2 minutes
  • /help menu with all available commands
  • Knife duel /duel
  • Rock paper scissors /rps — loser dies
Economy, Shop, Prestige & Bounty
NEW
  • Points system — /points: +1/kill, +9 human HS, +25 knife
  • Betting system — /bet with 2×/3×/5×/10× multipliers
  • /fame page — top Fraggers, Sharpshooters, K/D, Richest, Veterans
  • Shop/shop: 8 player skins, 6 trails, 6 glows, speed boost
  • Prestige system — reset rank at 2400 kills, points bonus, max 10 prestiges
  • Bounty system — kill streaks generate bounties that reward whoever takes you down
Improved spawning, visual effects & sounds
NEW FIX
  • Random spawn v5: wall, space and minimum distance checks — no telefrags
  • 3-second spawn protection
  • Floating damage numbers on HUD
  • Parachute — hold E while falling
  • Kill streak glow: green → yellow → orange → red → purple
  • Quake sounds: UT2004 Sexy Female Announcer
FFA Deathmatch, Ranking, Bots & Skins
NEW
  • FFA Deathmatch as default mode — no rounds, respawn in 1.5s
  • CS:GO-style ranking — 18 ranks from Silver I to Global Elite
  • Rank up/down with golden HUD announcement and chat notification
  • /rank and /top15 available
  • 6 bots playing — leave when human players join
  • Weapon skins: AK-47 Asiimov, M4A1 Hyper Beast, AWP Asiimov, Butterfly Knife, Deagle Born Beast
  • Quake sounds: First Blood, Headshot, Double/Triple/Multi Kill, Godlike, Humiliation
  • Admin tools for server management
  • FastDL configured — automatic custom content download for clients
Server online — first boot
NEW INFRA
  • CS 1.6 server live at 2.82.111.93:27015
  • ReHLDS + ReGameDLL + AMXModX 1.10.0 installed
  • Non-Steam support via ReUnion
  • Weapon menu /guns with 10 primaries + 5 secondaries, infinite ammo
  • BHOP mode (/bhop)
  • Web admin panel