Skip to content

What's different in San Andreas Online

This page covers only what San Andreas Online changes. For standard MTA behavior, use the official MTA Wiki.

San Andreas Online is still experimental. Its capacity patches keep the normal San Andreas defaults unless a server or resource opts into the larger limits.

GoalStart hereCurrent scope
Populate the world with synchronized GTA NPCs and trafficSynchronized NPCs and trafficShared civilians, native gang groups, gang combat, motorcycle carjacks, dealers, city cops, civilian couples, and civilian road traffic use GTA’s population, path, and task systems with server ownership and client handoff.
Script San Andreas’ own physics propsScriptable dynamic objectsGTA-owned dynamic objects appear as client worldobject elements with live transforms plus damage and break events. GTA keeps physics ownership.
Build collision shapes from scriptRuntime collision generationDescribe collision as a Lua table of spheres, boxes and meshes instead of shipping a .col, and rebuild it live on models already in the world.
Grow vegetation anywhereCustom foliageHand GTA’s native plant manager a triangle, a surface and a density, and it grows its own grass there with normal rendering and wind.
Control fire as a real elementManaged fireServer-synchronized fire elements that keep their identity, can be retargeted onto a moving element, and are changed while burning.
Fill the sky with controllable birdsScriptable birdsClient bird elements with their own renderer, steerable flight, restyling and optional gunshot hit testing, past GTA’s six native ambient slots.
Light the world with GTA’s own effectsModel 2DFX effectsRead, edit, add and remove the 2DFX records baked into GTA models: lights with native blink modes, particles, roadsign text, escalators and sun glare.
Break any object, not just the prepared onesObject fracture effectsFragments cut from an object’s live RenderWare geometry at runtime, with durability profiles so ordinary GTA damage triggers the break.
Give an object real physicsDynamic object physicsOpt an MTA object into GTA’s rigid-body simulation, with position, rotation and both velocities synchronized across clients.
Use GTA’s cranes and winchesManaged ropesThe eight native rope types as synchronized rope elements, with cargo attachment and more logical ropes than the engine has slots.
Load SA-MP / Texture Studio mapsSA-MP mapsParse Pawn exports directly, resolve SA-MP custom objects, apply material slots, building removals, interiors/worlds, and redistribute the fixed object-streaming budget when needed.
Give the game a PS2-style image or DE radarSkyGFX, radar, and client visualsSelected SkyGFX effects, a Definitive Edition radar profile, layout controls, and resource-owned temporary visual overrides.
Read or synchronize GTA radio playbackNative GTA radio playbackCapture and restore the real GTA radio station/track/position/queue state; multiplayer synchronization remains resource-owned.
Discover and join SA:O serversSan Andreas Online client experienceA GTA-style menu combines the public registry with live server data, filters, favorites, artwork, localization, and connection states.
Add verified community identitySA:O accountsOne server setting enables optional or required San Andreas Online/Discord identity; verified IDs are available before join and in resource bans.
Give custom vehicles their own soundCustom vehicle audioCopy an existing Assetto Corsa or Soundize .bank into a resource, assign it to a vehicle, and San Andreas Online makes it follow RPM, throttle and gears automatically. It can also add automatic or Lua-triggered backfire sounds and exhaust flames.
Use more of the worldExtended worldA 20 km XY domain with matching sectors, water, radar, map, pickup, and network work.
Load custom maps through GTANative world packsGive the server a supported static-world pack and GTA loads and streams it as native world content. Format-3 packs can download and load on the first connection without restarting GTA; a set can contain up to eight packs and later be replaced safely at runtime.
Give resources stable custom model IDsCustom modelsServer identities map to local GTA slots with native-parent fallback and cleanup.
Build GTA-style scenes or missionsStory runtimeNative pedestrian pathfinding, driving and combat AI, camera and cutscene leases, mission audio and text, recordings, and actor policies.
See what the mission harnesses proveMission checkpointsFive GTA mission recreations, including complete two-client headless passes for Sweet & Kendl and OG Loc, with exact evidence and remaining visual checks.
Call a specific functionSA:O Lua APISearchable reference with side, lifecycle, source, commit, native mapping, and test evidence.
Build a gamemode with an AI coding agentSA:O CLI for AI agentsGive the agent the complete MTA + SA:O API, exact function contracts, project checks, generated context, and real server/client/GTA observations without an MCP server.

Rooftop view over Los Santos: distant buildings are flat low-detail blobs in MTA and resolve into detailed geometry in San Andreas Online

AreaStandard MTA:SASan Andreas Online
Main world-sector grid120 × 120400 × 400
LOD world-sector grid30 × 30100 × 100
Supported extended-world XYAbout −3,000 to +3,000−10,000 to +9,999
Custom-water grid12 × 12 / 144 blocks40 × 40 / 1,600 blocks
Custom-water XYAbout −3,000 to +3,000−10,000 to +9,999
Pickup visual XY−4,096 to +4,095.875−10,000 to +9,999
Low-precision network XYAbout −8,192 to +8,192−10,000 to +10,000 on SA:O-capable connections
Absolute network camera rangeAbout −8,192 to +8,192About −16,384 to +16,384 on SA:O-capable connections
Procedural seabedUnlimitedServer-configurable 3,000–10,000 or unlimited
Native minimapFixed 12 × 12 stock gridSparse 40 × 40 logical grid plus Vanilla/Definitive client radar profiles
F11 mapPackaged San Andreas imageRuntime atlas composed from native and registered extended tiles
MTA object streaming splitFixed 500 normal / 500 low-LODSame 1000-slot hard budget, resource-adjustable split including 1000/0
SA-MP map exportsConversion normally requiredNative Texture Studio/Pawn parser, custom-object loader, removals, worlds/interiors, and the SetDynamicObjectMaterial slots a retextured map depends on
Large IMG-backed citiesBasic client IMG linksBounded resource-managed residency and safe city switching
Native world packsNot availableGeneric format-3 static-world packs loaded through GTA’s own world loader and streaming system, with strict auditing, immutable cache, server isolation, and safe runtime replacement
Reviewed native-world proof packsNot availableBullworth, Vice City, Liberty City, and Carcer City; automatic spatial residency with one imported city active at a time

Night view over the city: fogged out beyond a short distance in MTA, full skyline with hundreds of distant lights in San Andreas Online

AreaStandard MTA:SASan Andreas Online
GTA corona pool644,096; 4,094 available to scripted coronas
GTA 3D marker pool324,096
GTA checkpoint pool324,096
Direction arrows54,096
Attribute CULL zones1,3004,096
Tunnel CULL zones40256
Mirror CULL zones72256
Visible entity pointers1,0008,192
Visible LOD pointers1,0008,192
Streaming RenderWare instances2,50030,000
PS2-style post effectsNot built inIntegrated SkyGFX color filter, YCbCr and depth-bias first-run profile; blur and radiosity remain opt-in
Radar rendererStock GTA radarConfigurable Vanilla or Definitive Edition profile with widescreen-safe layout controls
Resource visual overridesNo San Andreas Online layerAllowlisted radar/SkyGFX settings stack by resource and restore player preferences on stop
Native CULL editingInternal onlyResource-owned Lua CRUD, stable IDs, and cleanup
Project2DFX distant lightsNot integratedOpt-in static coronas and timed traffic lights from the complete startup IPL catalogue, using a private 25,000-light render queue

A cardboard box bound to a worldobject element, tracked with a live label next to a green objective zone

AreaStandard MTA:SASan Andreas Online
Custom model identityClient-local runtime allocationServer-stable logical IDs mapped to per-client GTA slots
Supported server model typesNot availableObjects, vehicles, and peds with native-parent fallback
SA-MP custom-object identityNot integratedOriginal SA-MP IDs resolved to resource-owned San Andreas Online runtime models by the reference loader
Model-native ped locomotionNo synchronized explicit modeShared Lua policy that follows skin changes and recreation
Ambient pedestrian populationLocal GTA population remains disabledServer-owned civilians, native gang groups, dealers, city cops, and civilian couples proposed from GTA’s population and path rules with owner epochs and cleanup
Ambient gang behaviorLocal-only single-player logicOwner-only native groups with leader/follower movement, fight/flee decisions, gang weapons, synchronized damage admission, and bike-jack handoff
Ambient city copsLocal-only, and the retail cop task is unsafe on an MTA pedA safe ambient-cop wander task on GTA’s verified base locomotion: real path nodes, pauses, and road crossing with wanted, pursuit, and arrest unreachable by construction
Ambient couplesLocal-only single-player logicAtomic two-ped native couple leases with GTA-owned walk side, hand holding, look-at, and give-up distance, plus a separate observer presentation lease
Native dynamic objectsNot exposed to scriptsGTA-owned physics props published as client worldobject elements with live read/write transforms and cancellable damage and break events
Collision authoringA packaged .col file, fixed at build timeCollision serialized from a Lua table of spheres, boxes and meshes, rebuildable in place on models that are already streamed in
Vegetation placementWhatever the shipped map containsUp to 64 resource-owned foliage triangles driving GTA’s native plant manager, with live surface and density changes and dimension support
FireClient-only createFire, returning a boolean with no handleSynchronized fire elements with persistent identity, live strength, duration, damage-mask, spread and target changes, past GTA’s 60-fire pool
Ambient birdsSix native GTA slots, no script accessResource-owned bird elements with steerable flight, colors, wing beat, render distance and shootability; 128 verified at once
Model 2DFX effectsBaked into models, not exposed13 client functions to read, edit, add and remove them, with per-resource overrides that roll back on stop
Breakable objectsOnly models shipping the DFF breakable pluginAny streamed object, fractured from its own geometry with no breakable DFF or fracture metadata
Object physicsObjects are static unless scripted frame by frameOpt-in native GTA rigid-body simulation, with linear and angular velocity synchronized through syncer changes
RopesOnly the legacy createSWATRope callAll eight native rope types as synchronized elements, with holder tracking, cargo attachment and eight native slots leased across more logical ropes
Native ped story tasksNo direct reusable surfaceReusable movement, driving, combat, dialogue, sequence, and actor-policy primitives
Native AI on non-syncersOrdinary synchronized element stateReusable locomotion, rotation, ordered animation, fight/chat, weapon audiovisual, and selected physical/group presentation without competing AI or duplicate damage
Ambient vehicle trafficLocal GTA population remains disabledServer-owned civilian cars, vans, trucks, motorcycles, BMX bicycles, and quads use GTA’s vehicle choice, road placement, occupants, and DriveWander AI in world 0; boats, aircraft, trailers, parked cars, mission routes, and emergency services remain separate work
Native route continuityStream range normally ends native simulationResource-owned streaming leases plus a server-owned route harness with owner epochs and syncer reconstruction
Story actor and vehicle policyGeneral MTA abstractionsPersistent native actor flags, event-profile leases, raw door locks, tyre policy, vehicle proofs, and mission collision loading
Native script cameraStandard MTA camera settersResource-exclusive generation-token lease over GTA primitives
Native file cutscenesNot exposed as a resource-owned APIStock DAT/CUT/IFP playback with load/start barriers, synchronized skip, fades, completion, and cleanup
Stock entry-exit transitionsNative manager disabled by MTA because its entry path crashesOptional server-owned Lua runtime using audited IPL pairs, exact on-foot triggers, fades, authoritative interior moves, and rollback
Mission audioNo owned GTA mission slotsFour resource-owned native slots with load recovery and cleanup, plus the original mission-passed tunes
GTA radio playback stateNot exposed to LuaClient Lua snapshot/restore for station, track, seek position and queue; resources can relay it between clients
Mission GXT textNo resource-owned native leaseExclusive block lease with small/help/big text queues
Recorded-car playbackNot exposedResource-owned direct non-looped native playback
Gang tagsDisabled single-player tag pathResource-owned native spray hits, persistent 8-alpha progress, Grove rendering, and cleanup
Directional scene loadNot exposedGTA 0A0B directional preload sequence with finite input validation
Vehicle story gatesApproximate public checksExact 09D0 all-wheel predicate and verified vehicle-attached script-audio events
Fast weapon strafeNot availableSynchronized fastweaponstrafe glitch, disabled by default

The tables describe available code paths, not one shared stability level. Follow the linked system guide for ownership, limitations, and the evidence behind a particular feature.

  • debugscript 4 opens a searchable client/server Lua error inspector with filters, grouped duplicates, capture, and TXT/JSON export.
  • The SA:O CLI for AI agents gives coding agents the complete MTA + SA:O API, checks resource metadata and API sides, generates deterministic project context, and can verify that the server, client, and GTA actually joined a test.
  • Drag-and-drop DFF/TXD skin and IFP animation previews for local development.
  • Extended-world generators, IMG packers, radar extractors, manifest validators, cache tests, and native payload audits.
  • A native SA-MP map parser/loader fixture, object-streaming quota harness, native-radio playback resource, and a world-object scripting showcase.
  • Focused test resources for engine limits, world systems, native tasks, synchronized population, scene primitives, mission checkpoints, compatibility, and cleanup.
  • A CI-built Windows San Andreas Online installer with its own branding, registry state, protocol registration, shortcuts, and uninstall path, isolated from an existing official MTA installation.

See Tooling and verification for the broader test-level definitions. A successful build or static check is not described as an in-game pass.

The SA:O Lua API is generated from the final C++ registrations and documents both San Andreas Online additions and existing MTA functions whose side, task, or lifecycle contract San Andreas Online extends. Each entry identifies its actual side, implementation commit, ownership rules, failure conditions, and focused test resource when one exists.