FC 26 HUB/LUA/MEMORY API

ARTICLE 69ADVANCED / RUNTIME / BUILD-SCOPED

READ THE ADDRESS.
PROVE THE BUILD.

The FC 26 Live Editor MEMORY class exposes 22 low-level methods and no fields. Before any call, prove the installed version, derive the address from current evidence and separate observation from mutation. An invalid address can crash the game.

VERSIONSOURCE REVISIONADDRESS ORIGINEXPECTED TYPEREAD FIRSTSTOP ON MISMATCH

01 / DIRECT ANSWER

Use MEMORY only when a higher-level API cannot own the job

This is not a universal address cookbook. The documented class reaches FC 26 process memory directly. Its strongest public evidence is a typed, read-only chain inside one creator script; raw writes, allocation and code redirection demand a separate patch lifecycle that the Wiki does not provide.

ENTITYFieldless class

One global-style MEMORY surface with 22 declared methods.

PRIMARY RISKInvalid address

The creator repeatedly warns that it may crash the game.

BEST FIRST MOVEHigher-level API

Prefer database, manager or attribulator entities when they expose the needed operation.

02 / OBJECT SURFACE

Twenty-two methods cross four different risk bands

Counting methods matters less than separating their effects. A typed read observes runtime state; an AOB result discovers a candidate; a write mutates bytes; allocation changes page lifecycle.

012
ALLOCATE / FREE

AllocateMemory · DeallocateMemory

v26.3.6 only
027
WRITE / PATCH

Bytes · Short · Int · Float · Qword · String · JMP

Runtime mutation
0310
DIRECT READ

Bytes · Char · Bool · Short · Int · Float · Qword · Pointer · Multilevel · String

Invalid-address crash warning
043
DISCOVER / RESOLVE

Game-module scan · Region scan · ResolvePtr

First-match address

03 / ORIGINAL REVIEW TOOL

Classify provenance without accepting or generating an address

The desk knows all 22 declarations and the v26.3.6 split. It asks for evidence categories, never a real address, offset, AOB pattern or write value. Its only output is a local review receipt.

NO ADDRESS INPUT / NO MEMORY CALLS

MEMORY PROVENANCE DESK

Classify one documented method against version, evidence and address origin. The output is a review receipt—not Lua.

22 METHODS / ZERO EXECUTION
01 / METHOD BAND
DECLARATION SHAPEMEMORY:ReadMultilevelPointer(address, offsets)
RETURNS__int64
DOCUMENTATION WARNING

The parameter table calls the offsets array “value”; the declaration calls it offsets.

EXACT MINIMUM VERSION NOT PUBLISHED
RECEIPT PREVIEW / NON-EXECUTABLE11 LINES
FC 26 MEMORY PROVENANCE RECEIPT
Method: MEMORY:ReadMultilevelPointer(address, offsets)
Band: READ
Return: __int64
Availability: Minimum version not separately documented
Selected release: v26.3.5 public/bronze
Evidence: Current creator source call
Address origin: Current creator script
Decision: CONTROLLED READ CANDIDATE
Human gates: 0/4
No address, offset, pattern, value or executable Lua was generated.
Never paste a real address, pattern, offset or write value into this page.LOCAL CLASSIFIER

NO EXECUTION CLAIM: this page cannot prove that an address is valid, a pattern is unique, a write is reversible or your installed binary matches any inspected source.

04 / VERSION GATE

Three methods belong explicitly to v26.3.6

INITIAL WIKI / 01 OCT 202519 methods

Six scalar/string writers, ten direct reads and three discovery/resolution methods. The page date does not establish an exact minimum LE version.

CHANGELOG / v26.3.6+3 methods

AllocateMemory, DeallocateMemory and WriteJMP.

CURRENT PUBLIC + BRONZEv26.3.5

The current manifest does not place those three additions in the public or bronze tier.

CURRENT PAIR: the manifest maps FC 26 v1.6.6 build 1.0.139.20381 to Live Editor v26.3.5–v26.3.6. Record both sides; “latest” is not a reproducible version.

05 / METHOD INVENTORY

The complete surface fits one accountable ledger

01
2 METHODSALLOCATE / FREE

AllocateMemory · DeallocateMemory

v26.3.6 only
02
7 METHODSWRITE / PATCH

Bytes · Short · Int · Float · Qword · String · JMP

Runtime mutation
03
10 METHODSDIRECT READ

Bytes · Char · Bool · Short · Int · Float · Qword · Pointer · Multilevel · String

Invalid-address crash warning
04
3 METHODSDISCOVER / RESOLVE

Game-module scan · Region scan · ResolvePtr

First-match address

06 / TYPED READS

A readable address still needs the correct type and expected range

Ten declarations select how bytes are interpreted. Reading the wrong width or structure can cross an inaccessible boundary; reading the wrong type can produce plausible but meaningless data.

METHODRETURNINTERPRETATION
ReadBytes(address, count)unsigned __int8[]

Byte table

ReadChar(address)unsigned __int8

One byte / char

ReadBool(address)bool

Boolean

ReadShort(address)__int16

16-bit signed

ReadInt(address)__int32

32-bit signed

ReadFloat(address)float

Floating point

ReadQword(address)__int64

64-bit signed

ReadPointer(address)__int64

Pointer-sized value as documented

ReadMultilevelPointer(address, offsets)__int64

Resolved pointer

ReadString(address)string

Termination/encoding unspecified

READ-ONLY ≠ SAFE: the Wiki repeats the possible-crash warning for all ten direct reads. It publishes no statement that pcall catches a native invalid-address fault.

07 / POINTER CHAIN

What does the official fixture exporter actually prove?

01KNOWN OWNERGetPlugin(...)

Starts from a named Live Editor service, not an arbitrary pasted address.

→
02CHAINReadMultilevelPointer

Applies a source-owned offsets array from a fixed repository snapshot.

→
03TYPED FIELDSReadBool / Char / Short / Int

Reads documented structure widths at named offsets.

OFFICIAL SNAPSHOT / NOT A TIMELESS ADDRESSreturn MEMORY:ReadMultilevelPointer(IFCEInterface, {0x18, 0x10, 0x08, 0x00})

The composition pattern is reusable. The exact offsets remain build-scoped evidence.

08 / DISCOVERY

Does an AOB match prove the final address?

No. The two scan methods return the first matching address; ResolvePtr resolves from an address and offset. The Wiki does not define uniqueness checks, a no-match sentinel or a safe dereference sequence.

MODULE SCOPEAOBScanGameModule(pattern)

Scans the game module and returns its first documented match.

REGION SCOPEAOBScanRegion(start, size, pattern)

Adds caller-controlled start and region size.

RELATIVE POINTERResolvePtr(address, start_from)

Transforms a candidate; it does not certify target purpose or lifetime.

MATCH≠UNIQUE≠EXPECTED RANGE≠VALID TYPE≠SAFE WRITE

09 / WRITE SURFACE

Six writers return bool; the jump patch returns nothing

METHODINPUTRETURN
WriteBytesbyte tablebool
WriteShort__int16bool
WriteInt__int32bool
WriteFloatfloatbool
WriteQword__int64bool
WriteStringstringbool
WriteJMPtwo addressesvoid

SUCCESS IS NOT CORRECTNESS: for the six bool writers, a successful return can only establish the wrapper’s reported write result. It cannot prove that the address, type, value, owner or downstream game behavior was correct.

WRITEBYTES CONTRACT: its second argument is an unsigned-byte array/table. Official issue #8 records the runtime rejecting a scalar with “Expected table at argument 2.”

10 / ALLOCATION LIFECYCLE

AllocateMemory and DeallocateMemory mirror a Windows ownership pair

ALLOCATEv26.3.6
VirtualAlloc semantics

Address, byte size, allocation type and page protection enter; the base address returns on success.

DEALLOCATEv26.3.6
VirtualFree semantics

For Windows MEM_RELEASE, size must be zero and the address must be the original allocation base.

OWNERSHIP RECEIPTBASE ADDRESS + SIZE + FLAGS + OWNER + RELEASE PATH

The Wiki gives declarations but no complete FC 26 example. This article therefore does not generate allocation constants or executable code.

11 / WRITEJMP

A void 0xE9 patch needs evidence outside the return value

FROM0x????????
0xE9
TO0x????????

The creator describes a simple jump from one address to another and documents no return. The page does not state overwritten-byte length, displacement validation, page-protection handling, instruction-cache behavior or restoration. Those absences are reasons to hold—not invitations to guess.

12 / CREATOR SOURCE AUDIT

One of 35 official scripts makes every direct MEMORY call

35TOP-LEVEL LUA FILES
01DIRECT MEMORY CONSUMER
54MEMORY CALLS
06UNIQUE READ METHODS
ReadBool3
ReadChar27
ReadInt6
ReadMultilevelPointer1
ReadPointer6
ReadShort11

NEGATIVE EVIDENCE: the top-level corpus contains no direct example of a write, AOB scan, ResolvePtr, allocation, deallocation or WriteJMP. The Wiki declaration remains the product contract; a working creator-script recipe is absent.

13 / PROVENANCE LADDER

An address claim must climb from origin to replay

  1. 01
    VERSIONExact executable + Live Editor pair

    Record numbers, not “current” or “latest.”

  2. 02
    ORIGINCreator source, current pattern or current pointer chain

    Older hard-coded values fail here.

  3. 03
    RANGEExpected module, region and lifetime

    A numeric value alone has no owner.

  4. 04
    TYPEWidth, interpretation and expected value range

    Prove one read before a larger traversal.

  5. 05
    EFFECTObservation, discovery, write or lifecycle

    Escalate review with effect.

  6. 06
    REPLAYLog result, restart and reproduce

    A one-off non-crash is not validation.

14 / DOCUMENTATION AUDIT

Six gaps must stay visible instead of becoming invented behavior

01
BROKEN TOC

ReadBool links to ReadBytes; AOBScanRegion points to AOBScanModule.

02
PARAMETER NAME

ReadMultilevelPointer declares offsets, while its parameter table calls the array value.

03
NO FAILURE SENTINEL

AOBScanGameModule, AOBScanRegion and ResolvePtr do not document a no-match/failure value.

04
NO STRING CONTRACT

Encoding, terminator and destination capacity are not stated.

05
NO WRAPPER SOURCE

The linked memory.lua path is 404 in the current public repository.

06
NO PATCH ROLLBACK

The Wiki does not define original-byte capture, protection changes or instruction-cache handling.

PROVENANCE LIMIT: the Wiki links to lua/libs/v2/imports/memory.lua, but that public path currently returns 404. Declarations and callers are inspectable; the wrapper implementation is not.

15 / CONTROLLED VALIDATION

Stop after the first unproven boundary

  1. 01
    Work offline and preserve a separate Career slot

    Runtime memory and saved Career state are different rollback layers.

  2. 02
    Record the exact FC build, LE version and source revision

    Do not begin with an unversioned snippet.

  3. 03
    Resolve one current address with a named owner

    Reject copied or manually guessed absolute addresses.

  4. 04
    Perform one typed read against an expected range

    Stop on zero, implausible, unstable or mismatched output without assuming a sentinel.

  5. 05
    Restart and reproduce the read-only result

    Preserve the minimal log and exact inputs.

  6. 06
    Route mutation to an independent patch review

    Capture original bytes, owner, write width and restoration design outside this page.

16 / FAILURE ROUTING

The first missing proof decides where to stop

METHOD MISSINGVersion

Check the explicit v26.3.6 split before changing code.

BAD ARGUMENTType contract

Compare the exact declaration; WriteBytes requires a table.

NO / ODD MATCHDiscovery

Do not invent a no-match sentinel or dereference an implausible result.

READ CHANGESLifetime

Re-check mode, owner, pointer chain and build.

CRASHAddress boundary

Stop execution, preserve logs and return to the last proven read.

WRITE “SUCCEEDS”Semantic proof

Verify the intended effect independently; bool is not correctness.

17 / VIDEO & INTENT AUDIT

No current video documents this 22-method contract

Six searches produced 56 result slots and 48 unique videos. Exact queries drifted into anticheat fixes, generic Cheat Engine, Android memory tools, Python trainers and old FIFA workflows. None covered the v26.3.6 split, method signatures, source inventory or address provenance.

56SEARCH SLOTS
48UNIQUE VIDEOS

CURRENT FC 26 LUA: supports file/open/execute vocabulary only.

GENERIC MEMORY TOOLS: do not define Live Editor’s wrapper contract.

API AUTHORITY: creator Wiki, changelog, manifest and inspected source.

18 / FAQ

FC 26 Lua Memory API questions answered at the evidence boundary

01What is the FC 26 Live Editor MEMORY API?

It is a fieldless Lua API v2 class that exposes 22 methods for allocation lifecycle, typed process-memory reads, discovery, writes and a relative jump patch.

02How many Memory API methods are documented?

Twenty-two: two allocation-lifecycle methods, seven write/patch methods, ten direct reads and three discovery/resolution methods.

03Which methods require Live Editor v26.3.6?

The official changelog explicitly adds AllocateMemory, DeallocateMemory and WriteJMP in v26.3.6. The current public and bronze manifest entries remain v26.3.5.

04Does an old address work after an FC 26 update?

Do not assume it does. Treat an address, pointer path or AOB result as build-scoped evidence and re-prove it against the exact current executable.

05Can an invalid read crash the game?

Yes. The creator repeats that warning across the direct read and write declarations. A read-only operation is lower-effect, not crash-proof.

06Does Lua pcall make a raw memory read safe?

No such guarantee is documented. The Wiki warns about game crashes and publishes no contract saying a native access fault becomes a recoverable Lua error.

07What does AOBScanGameModule return?

The Wiki says it returns the first matching address. It does not document the result when no match exists, so a guessed sentinel must not be treated as fact.

08What is different about WriteJMP?

It writes a simple 0xE9 jump between two addresses, was added in v26.3.6 and returns void rather than a success boolean.

09Why does WriteBytes require a table?

Its declaration expects an unsigned-byte array. Official issue #8 also records a bad-argument message stating that argument 2 must be a table.

10Is the linked memory.lua implementation public?

Not at the current Wiki link. The referenced lua/libs/v2/imports/memory.lua path returns 404, so this article does not claim an implementation audit.

11What official script demonstrates MEMORY calls?

In the current 35-script top-level library, export_fixtures.lua is the only direct consumer. Its 54 calls are all reads across six methods.

12Should I use MEMORY instead of the database or manager API?

Use a higher-level documented entity when it owns the task. Raw memory is appropriate only when the address, type, build and lifecycle are independently understood.

19 / EVIDENCE LEDGER

Creator sources define the wrapper; Microsoft defines only its linked OS terms

Every claim is scoped to its owner. Generic Windows memory pages do not reveal the private Live Editor implementation, community issues do not become fixes, and video search does not become an API specification.