Skip to content

Shelved PR 194 chernarus no trees

rayswaynl edited this page Jul 2, 2026 · 1 revision

Shelved: PR #194 — Chernarus "No Trees" experimental toggle

Rejected by Ray, 2026-07-02 (Build 88 candidate). Ray's verdict: "trash this idea and add to wiki, i don't like it." Do not revive as a mission-side toggle — revive only as the server-side terrain-addon route, if ever wanted.

WHAT it is

An experimental Chernarus-only lobby parameter (WFBE_C_CH_NOTREES, default OFF) that hides map vegetation for a tree-free battlefield. The intent was a server-wide fair setting (client-side vegetation mods are banned here for fairness, so a uniform pass on every machine was the proposed "fair" route).

Implementation was visual-only, mission-side:

  • A new Client/Functions/Client_NoTrees.sqf grid-sweeps the map in 480 m cells (360 m scan reach, uiSleep between cells) and calls hideObject true on classless vegetation returned by nearestObjects [cell, [], radius] (the empty [] class array returns classless WRP terrain trees/bushes — the same technique the commander "Site Clearance" action already uses in Server/Functions/Server_SiteClearance.sqf).
  • Registered on every machine because hideObject is LOCAL in A2-OA 1.64 and has no global variant: Init_Client.sqf (players + JIP), Init_Server.sqf, Init_HC.sqf. Self-gated on worldName == "Chernarus" and WFBE_C_CH_NOTREES, so Takistan is fully inert.
  • A2-OA 1.64-safe throughout: avoids the A3-only traps nearestTerrainObjects (A3 1.54), hideObjectGlobal (A3 1.12), and worldSize (A3-only latent bug on A2-OA); map size hardcoded 15360.

Core finding — why it can't be done fairly mission-side

In A2-OA 1.64, hideObject hides RENDER ONLY. Collision-disable-on-hide was only added in Arma 3 v1.45. So a hidden tree keeps its Geometry + View-Geometry LODs:

  • AI still SEE and shoot through the visually-cleared trees (AI occlusion uses the View-Geometry LOD, which persists).
  • Bullets and vehicles still COLLIDE with the invisible trunks.

This is uniform for every player (not player-vs-player unfair), but it is player-vs-engine unfair: it re-introduces exactly the concealment mismatch the client-mod ban exists to prevent. setDamage-felling is worse (fallen trees still block AI vision and desync for JIP joiners). A genuinely tree-free Chernarus needs a server-distributed terrain ADDON that strips the WRP vegetation for real (AI vision + collision gone, byte-identical for all machines) — a deploy-pipeline item, not a mission script.

The honest feasibility write-up lives on the PR branch at docs/design/CH-NOTREES-FEASIBILITY.md.

WHERE

  • PR: #194 ("BUILD 88: Chernarus 'No Trees' experimental toggle (cmdcon43-a)")
  • Branch: claude/cmdcon43-notrees (head commit 0334b11dc) — do not delete the branch; this page references it.
  • Base: claude/build84-cmdcon36 (live lane)
  • Key files: Client/Functions/Client_NoTrees.sqf (new), wiring in Init_Client.sqf / Init_Server.sqf / Init_HC.sqf, param WFBE_C_CH_NOTREES in Common/Init/Init_CommonConstants.sqf + Rsc/Parameters.hpp, plus docs/design/CH-NOTREES-FEASIBILITY.md. Mirrored CH→TK via LoadoutManager.

STATE

  • REJECTED by Ray 2026-07-02. Default OFF; never boot-smoked.
  • Diff is lint-clean (0 non-BOOLCMP findings on the new file; brackets balanced; A2-OA-safe). The rejection is a design call, not a code-quality one: the mission-side approach can never remove AI vision/collision on A2-OA 1.64, so it is an unfair cosmetic mismatch.

HOW TO REVIVE

  • Do NOT revive the mission-side hideObject toggle — it is rejected for the AI-vision/collision reason above.
  • Only revive via the server-side terrain addon route: build a Chernarus terrain variant/addon that strips the WRP vegetation objects, distribute it through the deploy pipeline so every client/server/HC loads the identical tree-free terrain (AI vision + collision genuinely gone, byte-identical). See docs/design/CH-NOTREES-FEASIBILITY.md on branch claude/cmdcon43-notrees for the full route.

Sidebar

Clone this wiki locally