Jump to content

Recommended Posts

Posted

Patch Notes - 3rd May to 16th May 2026

Two solid weeks of work from the dev team. Big refactor under the hood, a new drug economy on top, and a long list of fixes scattered through almost every system. Credits per section below.

 


 

Core engine + tooling
  Developer: @java

  • TypeORM migration. Around 140 manager files moved off raw SQL onto TypeORM repositories and the query builder. One AppDataSource, automatic snake_case mapping, migrations table now owns schema changes.
     
  • Command system rewrite. All new commands use defineCommand in systems/<domain>/commands/<name>.ts, registered via static readonly commands on the manager class. Typed args, guards, cooldowns, automatic usage hints, dev-mode-only gating.
     
  • Vue overlay framework. Vue 3 + Tailwind v4 overlay replaces the old per-feature CEF browsers. Centralised CursorManager with key-based refcount swept across 145 files. Strict ipc layer with six directional event enums to keep server, client, and overlay talking
      through typed strings.
     
  • Chat moved fully to Vue with 1:1 visual parity to the legacy chat plus FontAwesome Pro 6.4 icons and scoped SCSS.
     
  • Server-side boot initialisation now waits for every system to be ready before processing events. Boot-time DDL stripped from manager initialisers (DB and migrations own schema now).
     
  • Dockerised the application with deployment configuration.
     
  • Refactor moved event handlers out of index.ts into their owning managers; index.ts is now bootstrap-only.
     

 


  Drug system (new)
  Developer: @MelonDisrupt

  A full player-driven drug economy. No NPC dealers, no auto-spawn customers. Every gram is produced and sold by a real character.

  Cannabis lifecycle
 

  • Plant a strain seed in a grow setup and harvest wet buds.
     
  • /trimweed runs a leaf-snip minigame.
     
  • /dryweed hangs trimmed buds on a drying rack. Ready in ~30 minutes, over-dried past 90.
     
  • /curejar seals dried weed in a mason jar; 2 hours unlocks premium tier.
     
  • /presskief sifts trim into kief; /presshash compresses it.
     
  • /makebutter for cannabis butter, /bakeedible for brownies.
     
  • Quality propagates through every stage. Bad inputs cap the ceiling.
     

  Lab pipelines
 

  • Eight commands: /cookcocaine /cookmeth /cookheroin /cookmdma /cooklsd /cookfentanyl /cookdmt /cookcrack.
     
  • Data-driven engine walks per-drug recipes from the catalog. Each stage runs a minigame and produces an intermediate item. Run the same command repeatedly to advance through stages.
     
  • 11 new precursor + intermediate items (cocaine_base, heroin_base, ergotamine, lsd_liquid, lsd_blotter, fentanyl_raw, fentanyl_packaged, mimosa_bark, dmt_extract, dmt_crude, dmt_crystal).
     

  Mushrooms
 

  • /sterilizejar pressure-cooks a grain jar.
     
  • /inoculate injects a spore syringe.
     
  • /checkcake promotes the substrate after a 1-hour colonisation.
     
  • /mistcake keeps humidity up; debounced 5 minutes.
     
  • /harvestflush pulls a flush every 3 hours, up to 3 per cake.
     
  • /drymushrooms is a passive 30-minute dry.
     

  Davis Head Shop
 

  • Old Hydroponics shop renamed and rebuilt as a Vue panel.
     
  • Two tabs: Cultivation Supplies (seeds, grow gear, drying racks, cure jars, scales, baggies) and Head Shop (mushroom kit, reagent kits, fentanyl test strips).
     
  • Legal notice banner on the Head Shop tab.
     
  • Walk up to the marker and press E.
     

  Addiction, withdrawal, overdose
 

  • Every dose stamps the drug_addictions row: tolerance up, total uses up, lastUse refreshed.
     
  • Withdrawal severity climbs the longer you go without a dose. Visual timecycle + HP regen tax.
     
  • Overdose math: effective dose against lethalDoseBaseline × (1 + tolerance / 50). Triggers the existing INJURED bleed-out state.
     
  • /naloxone <id> revives opioid OD victims within 5 minutes. 3m proximity gate.
     
  • /detox at Pillbox Hill Medical Center clears every addiction record for $1,500.
     

  Weighing, bagging, cutting, selling
 

  • /weigh reads exact grams and quality off a bag. Needs a digital scale.
     
  • /bag splits a parent bag into a smaller baggie (small / medium / large = 1g / 7g / 28g).
     
  • /testdrug burns a Marquis kit, Mecke kit, or fentanyl strip. Reveals quality and adulterants.
     
  • /cut mixes a cutting agent into a drug bag, bumps weight without quality.
     
  • /sell <player> <drug> <grams> <price> hand-to-hand sale, 3m proximity, atomic cash transfer.
     
  • /relationships shows your last 20 trade partners. Private to you.
     
  • New drug_p2p_sales table backs the reputation log.
     

 


  Vehicles + ELS + animations
  Developer: @FatCatTuxedo

 

  • New ELS system (client + server). Replaces the old one.
     
  • Vehicle engine sync and light sync re-coded.
     
  • Vehicle doors sync migrated to the new class.
     
  • Engine behaviour fixed on entry and exit.
     
  • New animation system, including /crun in dev mode.
     
  • Anim class converted to the new coding standards.
     
  • Server permission fix for /setfaction and /setrank.
     

 


  Phone rebuild
  Developer: @MelonDisrupt

 

  • Halo OS-style redesign in two phases. Every app wired through to the new shell.
     
  • Hand-attached phone prop while in use. Tuned position, rotation, and bone attachment.
     
  • Holding-phone pose triggers when open.
     
  • F3 keeps the phone open instead of cancelling.
     
  • Clock locked to UK time (Europe/London).
     
  • Rebound default hotkey to M.
     
  • Optional Windows desktop notifications for /pm and messenger DMs when the GTA window is alt-tabbed. Toggle in /settings → Chat → Accessibility.
     

 


  Property
  Developer: @MelonDisrupt

  • /propertyadmin redesigned to match /amotd visual language. Streaming payload for large lists, instant re-render after every mutation.
     
  • Interior picker per row (filtered by tier and search).
     
  • Re-list button on owned rows with optional refund to the previous owner.
     
  • Duplicate address rejection on create.
     
  • Soft-delete with 30-day restore in trash tab.
     
  • On-duty admins can lock or unlock any property via /aduty.
     
  • Property creator UI rebuilt as a makeup-style tabbed panel with 29 new interior shells and typed natives.
     
  • Entry/exit prompts now use the shared bottom prompt-hud.
     
  • Lock + entry bug fixed after stale-cache scenarios.
     

 


  Combat, death, EMS
  Developer: @MelonDisrupt

 

  • New three-state injury flow: INJURED → DEAD with bleed-out timer.
     
  • GTA death cam skipped on player death. Custom edge vignette replaces the oppressive death FX stack.
     
  • Timecycle cleared on revive; re-shot injured players execute properly.
     
  • Live damage chat ping on every weapon hit, with attacker, weapon, damage taken, and remaining HP.
     
  • /damages command lists your last 25 hits.
     
  • Per-weapon damage multipliers calibrated against 100 HP: pistols ~1.6x, rifles ~2.0x, snipers 4x, shotguns ~2.5x, knives 1.4x.
     
  • Gunshot audio pings within 50m, flushed every 4s.
     
  • Down state hardened: corpses can no longer walk through their own ragdoll by holding W.
     
  • /tackle command (closest player or /tackle <id>) and E-key sprint tackle when running. Both players ragdoll, attacker plays the takedown anim.
     
  • /blindfold toggleable IC blindfold with fullscreen black render.
     
  • Weapon draw protected against firing or fast-swapping mid-animation.
     
  • Tab cycle plays an /ame so bystanders see the draw or holster.
     

 


  Chat
  Developers: @java & @MelonDisrupt

 

  • Default font bigger, full opacity, shadows restored for readability.
     
  • Reliable scroll-to-bottom; MESSAGE_LIMIT bumped to 2000.
     
  • Vue overlay defaults to top-left and suppresses Tab focus cycling.
     
  • Rich disconnect cards with FontAwesome icons per reason (left / kicked / banned / timeout).
     
  • Admin staff feed: connect, login, disconnect, duty toggle broadcasts. /anotify toggles per-admin.
     
  • Welcome card improved with server time + recording-notice band.
     
  • Player IDs shown on chat lines, prefixed with the stable playerIdNumber (matches /admins and /id).
     
  • Per-type colour overrides in /settings → Chat → Message Colours (IC speech, action, OOC, whisper).
     
  • Native colour picker swapped for in-page palette + hex popover (CEF doesn't render the native one).
     
  • Action chat (/me /amy /melow /melonger /do) detected and tagged for no-shadow purple rendering.
     
  • IC speech (says / shouts / whispers / phone) detected client-side: pure white, semi-bold, full opacity even when the chatOpacity slider dims everything.
     
  • /b OOC lines get a thin 1px text outline so the slate-grey reads cleanly.
     
  • ASCII emoticons render as unicode emoji on display (<3, :), :(, ;D, etc.). Only OOC, PM, and system lines get the swap; IC stays literal.
     
  • /pm visual polish with direction arrows (← incoming, → outgoing) and brighter name/id colours.
     
  • /w <id> <message> directed 3m whisper with /ame for bystanders.
     
  • Suggestions popup floats above the input instead of pushing it down.
     
  • Chat hint and built-in chat hide reliably at init.
     
  • Settings sync wired: fade toggle, text outline, high-contrast, reduce motion, dyslexia-friendly, emoticons toggle, timestamps.
     
  • Accessibility section added to /settings Chat tab.
     

 


  Settings + accessibility
  Developer:  @MelonDisrupt

 

  • 4K / 5K / 6K / 8K-friendly scale ranges. Bumped slider max for chat font, HUD scale, nametag size, /ame text size, UI scale, notification scale, phone scale.
     
  • Display Preset dropdown in /settings → General: Auto-detect, 1080p, 1440p, 4K, 5K, 6K, 8K, Custom. Bulk-applies tuned values.
     
  • UI Sounds toggle in /settings → Chat → Accessibility.
     
  • Show My Own Nametag toggle (default on).
     
  • Show Player IDs toggle (default on).
     
  • Chat Text Outline toggle (default on).
     

 


  Hair, wardrobe, tattoos
  Developer: @MelonDisrupt

 

  • Hair slots cap raised from 10 to 60 saved styles per character. Wardrobe panel becomes scrollable with an "X / 60" header.
     
  • /hair <slot> applies a saved style anywhere in the world. /hair list enumerates them.
     
  • /hairstyle temporary restyling without touching the saved appearance. 12 presets. State in-memory, reverts on relog.
     
  • /hairtattoo scalp overlays sold at the barber. Star, crossed lines, lightning bolt, tribal, skull detail, and 7 more. Priced $150 to $250.
     
  • Hair colour palette now queried from the engine directly, so wardrobe swatches match what gets rendered.
     
  • Freemode undershirt baseline re-applied after any hair-component write, so the default bra/sports-top stops bleeding through on female peds.
     
  • First-outfit setup on character creation: wardrobe opens in a one-shot free creation mode with 30-second dwell timer. first_outfit_done flag stops second freebies.
     
  • /shirt and /undershirt sync torso arms to the bare-arms variant when both upper layers are off.
     
  • Tattoos use typed natives, re-apply after component changes, propagate to remote peds. Survives /nude, outfit loads, and wardrobe changes.
     
  • /nude gated to private dimensions only (not main world).
     
  • Wardrobe: hiddenZones cleared on outfit purchase or load so saved hats stop disappearing.
     
  • Custom CEF dialogs replace native window.prompt / confirm / alert across propertyadmin, motd, wardrobe, faction management (CEF doesn't render natives — they froze the panels).
     

 


  Admin tools
  Developer: @MelonDisrupt

 

  • /giveweapon ported to a Vue overlay panel with weapon, ammo, attachment, and audit tabs.
     
  • /factionmanagement rebuilt to match /propertyadmin style. Sidebar faction list, Details / Ranks / Members tabs, inline modals for confirm and prompt flows, snapshot push after every mutation.
     
  • Inline rank-picker modal replaces per-row dropdowns. Same picker drives Add Member.
     
  • Permission gate: faction_management department flag OR admin level 4+.
     
  • /forcereconnect <id|name> [reason] for admin level 1+. Drops with a chat line, kicks 1.5s later.
     
  • /givemoney now allowed for admin 5+ OR the economy_manager department. Each give writes a price_audit_log row.
     
  • /spectate camera fixed (was spinning due to two render handlers fighting for the same cam).
     
  • Spectator / vanish actually hides the local ped now (the previous flag was setting an unrelated config flag).
     
  • /amotd login MOTDs with BBCode and per-character ack.
     
  • /aduty defence-in-depth gate and audit log for admin teleports. Rate-limited.
     
  • /getup heal exempted from the cooldown bypass it was failing.
     

 


  Pets
  Developer: @MelonDisrupt

 

  • Pet panel rewritten to /settings-style sidebar with Overview, Tricks, Wardrobe, and Stats tabs.
     
  • /pets opens the panel. New columns: hunger, happiness, health, energy, xp, level, bond, personality, rarity, collar, walks, tricks, favorite.
     
  • 5-minute global SQL decay tick runs against offline pets too.
     
  • pet:action router handles feed, play, pat, walk, train, spawn, despawn with stat deltas and /me chat.
     
  • Pet shop rebuilt with rarity, personality, descriptions, inline adopt card, owned-pets tab.
     
  • Follow loop re-issues taskFollowToOffsetOf when the pet falls more than 2m behind. 4 Hz tick, walk/jog/sprint by distance.
     
  • Auto-/me from pets broadcasts as the pet ("* Max wags its tail") instead of through the owner.
     
  • Pets switched to typed Ped instance methods so they actually follow (the old globals didn't exist in the type defs).
     

 


  Trading cards
  Developer: @MelonDisrupt

 

  • First Year (2026) Pack with 400 cards and holographic UI.
     
  • Full design-pack visuals: frame, art-bg, gloss, holo, shimmer, mouse tilt, legendary burst, wax-seal pack.
     
  • 10h playtime gate dropped on cash purchases.
     
  • First pack auto-opens on purchase.
     
  • Inactive series hidden in the store.
     
  • /collection panel with sort and cash-only export.
     
  • Bag double-counting fixed (exported cards filtered out of the collection grid).
     
  • Card export refuses on inventory full and only flips is_exported=1 if addItem succeeded.
     
  • Using a trading_card from inventory now redeems it back into the collection.
     
  • First-press E drop on the card store fixed (was throttled to 500ms).
     

 


  Reports
  Developer: @MelonDisrupt

 

  • /reports rebuilt as a settings-style threaded panel.
     
  • Quick /report <msg> and /areply commands. Chat banners and off-duty flood pings.
     
  • Refresh open admin panels on new submission. Off-duty admins included.
     
  • Inline resolve modal, chat-delivery feedback, arg coercion fixed.
     

 


  Smoking, props, ambience
  Developer: @MelonDisrupt

 

  • Smoking system: looping animation, hand-attached cigarette, visible smoke, toggle-off.
     
  • 247store UI made bigger with a smoking section, multi-use packs, more snacks.
     
  • Radio muffling logic dropped the isWindowIntact gate (false-positive on coupes). 3D audio is unmuffled when any window is down or broken.
     
  • /domelight and /vwindow toggles, synced via vehicle vars and broadcast through player.call.
     
  • Trash cleanup expanded from ~20 to ~80 binbag / cardboard / pizza box / cup / bottle / cigarette pack / tyre pile / litter models. Scan radius bumped 80 → 120m. Per-tick per-hash cap raised. /cleantrash for on-demand admin sweep.
     
  • Spraytag occlusion raycast, scale cap, lazy redraw, typed natives.
     
  • Speed limiter caps by blocking the accelerator instead of forcing speed.
     

 


  Shipping + jobs
  Developer: @MelonDisrupt

 

  • Shipping manual box loading and unloading, better blips, HUD.
     
  • /jobs settings-style hub with Trucking + Bus Driver tabs (active job, lifetime stats, recent history) backed by JobsHubManager.
     

 


  Website, docs, infrastructure
  Developer: @MelonDisrupt

 

  • New /docs section with Notion-style sidebar and .md content. 9 starter pages + 5 added (glossary, ATMs detail, joining a faction, inventory & items, death / injuries / EMS).
     
  • Docs visual overhaul: hero card per page, index card-grid with category icons, sidebar icons + scroll-spy TOC, callout post-processor (NOTE / TIP / IMPORTANT / WARNING / CAUTION).
     
  • Homepage pulls real stats from /api/public/stats.
     
  • Download points to the correct game server.
     
  • Developer forum decommissioned. Tip text points to forum.roleplayproject.net.
     
  • News page removed from website nav; legacy WelcomeFest music emitter deleted.
     
  • UCP login API base fixed; register page removed (in-game only). Legacy UCP HTML scanned into the CSS bundle.
     

 


  Security audit
  Developer: @MelonDisrupt

  Critical + high + medium severity fixes from the audit pass:

 

  • /kick and /admins authorization corrected.
     
  • propertyadmin SQL injection vector closed with a whitelist.
     
  • Metrics endpoint locked down to 127.0.0.1 with env token, SQL action dropped.
     
  • 9 secrets hoisted to .env (Revolut, Intercom, 6 Discord webhooks, metrics token).
     
  • CayoPerico TOCTOU debit closed.
     
  • Vehicle health monotonic guard.
     
  • Admin teleport rate-limit and audit log.
     
  • EnergyManager IN clause parameterised.
     
  • /aduty defence-in-depth gate.
     
  • Registration verification fixed (was "Data too long for column code" — verifyCode wrote a 48-char token into a VARCHAR(6) column).
     

 


  Smaller fixes worth knowing
  Developer: @MelonDisrupt

 

  • /pay and /pm now resolve player IDs by displayed playerIdNumber instead of RAGEMP's runtime slot.
     
  • /factionmanagement invite same fix.
     
  • Gym prop spam crash fixed (was minting a new prop entity 60×/sec when attach silently threw).
     
  • Indicator off-state stuck bug fixed.
     
  • /vol 0 no longer falls back to 50%.
     
  • /vehicles spawn race-double fixed.
     
  • Cards: first-press E drop fixed by recomputing distance on demand.
     
  • Carlot uses live /economy prices instead of frozen catalogue.
     
  • Spawn: ped tasks cleared and level rotation set server-side.
     
  • Registration code timestamp uses DB-side NOW() / DATE_ADD so codes don't appear pre-expired across timezones.
     
  • Pollable browser init helper replaces single-shot setTimeout in 18 init sites. Eliminates blank UIs on slow CEF loads.
     
  • 11 "Press X to do Y" prompts converted from scaledText to the shared bottom prompt-hud.
     
  • 142 raw mp.game.invoke 0xHASH calls converted to typed natives across the client. Plus 91 in rounds 2 and 3, plus 38 more in round 4.
     
  • Trading-card export refuses on full inventory and only marks exported on success.
     
  • /cleantrash for on-demand admin sweep.
     
  • Phone clock locked to UK time.
     

 


  Server perms
  Developer: @FatCatTuxedo

 

  • Permission fix for /setfaction and /setrank.
     
  • Two follow-up perm passes.
     

 


  • Like 1
  • MelonDisrupt changed the title to Patch Notes: May 3 - May 16, 2026
×
×
  • Create New...