Argentum Online
Steam News 27 February 20262mo ago

πŸ“’ Server Code Updates - 26/02/26

Prison Priest only revives User (#1215) – ReyarB The Prison Priest now only revives the corresponding user (User#1215 – ReyarB). It does not modify any other status or affect other characters. Refactor unused parameters…

Update log

Full Argentum Online update

The complete published notes, normalized for clean reading and source attribution.

Extracted changes

1 fix7 additions8 changes3 removals
  • Gameplay
  • Balance
  • Server
  • Fixes
removedRefactor unused parameters (#1195) – CentoriosRemoved the [c]MapNumber[/c] parameter from [c]UserDisconnected[/c].
addedRefactor unused parameters (#1195) – CentoriosAdded explicit [c]Integer[/c] typing to the [c]UserConnected[/c] parameter.
addedRefactor unused parameters (#1195) – CentoriosUpdated the [c]SaveUser[/c] call to match the new [c]UserDisconnected[/c] signature (now only receives [c]UserIndex[/c]).
addedItem damage in combat against NPCs (#1190) – aledg994Added support for NPC-specific damage ranges using new item properties:
changedItem damage in combat against NPCs (#1190) – aledg994[c]MinHitToNPC[/c]
changedItem damage in combat against NPCs (#1190) – aledg994[c]MaxHitToNPC[/c]
Adjusted [c]ReDim Params[/c]65 to 61

Prison Priest only revives User (#1215) – ReyarB

The Prison Priest now only revives the corresponding user (User#1215 – ReyarB). It does not modify any other status or affect other characters.

Refactor unused parameters (#1195) – Centorios

  • Removed the [c]MapNumber[/c] parameter from [c]UserDisconnected[/c].

  • Added explicit [c]Integer[/c] typing to the [c]UserConnected[/c] parameter.

  • Updated the [c]SaveUser[/c] call to match the new [c]UserDisconnected[/c] signature (now only receives [c]UserIndex[/c]).

This simplifies the user connection/disconnection interfaces and ensures consistent parameter types.

Item damage in combat against NPCs (#1190) – aledg994

Added support for NPC-specific damage ranges using new item properties:

  • [c]MinHitToNPC[/c]

  • [c]MaxHitToNPC[/c]

Weapons and ammunition can now define an alternative damage range that applies only when the target is an NPC, while maintaining the current behavior against users.

Technical changes

  • [c]GetUserDamage[/c] now receives the target type ([c]TargetType[/c]).

  • [c]GetUserDamageWithItem[/c] incorporates differentiated logic based on the target.

  • All calls to [c]GetUserDamageWithItem[/c] were updated accordingly.

Added helper [c]GetHitRangeValues[/c], which:

  • Uses [c]MinHitToNPC[/c] / [c]MaxHitToNPC[/c] when the target is an NPC.

  • Allows partial overrides (min only or max only).

  • Validates invalid ranges ([c]MaxHit < MinHit[/c]).

  • Applies to both weapons and ammunition.

If a weapon or ammunition does not define [c]MinHitToNPC[/c] and/or [c]MaxHitToNPC[/c], traditional values are used automatically.

Refactor SaveCharacterDB into orchestration + focused DB helpers (#1218) – Morgolock

[c]SaveCharacterDB[/c] was converted into an orchestrator while preserving:

  • Original login validation

  • [c]PerformanceTestStart[/c] timing

  • Call order

  • Invocation of [c]SaveCharacterQuestsDB[/c]

  • [c]InitUserPersistSnapshot[/c]

  • [c]LogSaveCharacterDuration[/c]

  • Original error handler text

Database operations were extracted into private helpers:

  • [c]SaveCharacterMainDB[/c]

  • [c]SaveCharacterSpellsDB[/c]

  • [c]SaveCharacterInventoryDB[/c]

  • [c]SaveCharacterBankInventoryDB[/c]

  • [c]SaveCharacterSkillsDB[/c]

  • [c]SaveCharacterPetsDB[/c]

  • [c]SaveCharacterQuestsDoneDB[/c]

  • [c]SaveCharacterInventorySkinsDB[/c]

Each helper:

  • Receives [c]ByRef[/c] parameters

  • Follows the [c]GetTickCountRaw + Execute + AppendQueryDuration[/c] pattern

  • Preserves the original timing labels

Parameter order and SQL constants were preserved (no query strings were modified), as well as the exact pet-type selection logic and quest builder/cleanup behavior.

[c]SaveInventorySkins[/c] was encapsulated within [c]SaveCharacterInventorySkinsDB[/c] to keep the "save inventory skins" timing label unchanged.

Stop updating immutable identity fields on character save (#1219) – Morgolock

Removed [c]name = ?[/c], [c]genre_id = ?[/c], [c]race_id = ?[/c], and [c]class_id = ?[/c] from the [c]QUERY_UPDATE_MAINPJ[/c] builder in [c]Codigo/Database_Queries.bas[/c], so [c]UPDATE user SET ... WHERE id = ?[/c] no longer modifies identity fields.

Also:

  • Removed packing of corresponding VB parameters from:

    • [c]SaveCharacterMainDB[/c]

    • [c]SaveChangesInUser[/c]

  • Adjusted [c]ReDim Params[/c] from 65 to 61 to match the new placeholder count.

  • Added [c]Debug.Assert i = UBound(Params) + 1[/c] immediately before [c]Execute(QUERY_UPDATE_MAINPJ, Params)[/c] in both save paths to detect future mismatches between SQL placeholders and packed parameters.

New [c]DisabledInBattleServer[/c] flag for NPCs (#1223, #1224) – Temis-gt

Introduces a new NPC configuration field: [c]DisabledInBattleServer As Integer[/c].

Configuration

Read from config file:

[c]DisabledInBattleServer = Val(LeerNPCs.GetValue(SectionName, "DISABLEDINBATTLESERVER"))[/c]

Conditional check in BattleServer mode:

#If BATTLESERVER = 1 Then If Info.DisabledInBattleServer > 0 Then Exit Function #End If

Impact

  • Normal servers (BattleServer = 0): No changes. All NPCs load normally.

  • BattleServer (BattleServer = 1): NPCs with [c]DisabledInBattleServer = 1[/c] are not loaded or listed.

This prevents irrelevant or restricted NPCs from appearing in BattleServer mode and maintains gameplay consistency.

Fix: Net fishing not allowed from the shore (#1226) – ReyarB

Fixed a bug that allowed fishing nets to be used from the shore when it should not have been possible.

Hit Probability Limit Adjustment (5%–95%) (#1203) – Temis-gt

The hit probability calculation in combat (against both NPCs and players) has been adjusted.

Before: Minimum 10% – Maximum 90%

Now:

Source

Steam News / 27 February 2026

Open original