F.A.Q

3 min readUpdated Today

Setup

shared/config.lua
1Config.Locale = 'en'

Additional locales can be added in the locales/ folder.

Advanced (Config.RealTerminalItem = true): 9 different Geiger items, each with a unique UI model, color theme, battery capacity, and drain rate.

Simple (Config.RealTerminalItem = false): A single Geiger item for all players. Configure model, theme, and battery in Config.SimpleMode.

The model field on each item controls the display mode:

Overlay (model-modern, model-standard, model-retro): The Geiger renders as a screen overlay. No physical prop, no animation, player moves freely.

DUI Prop (dgm_geiger): A custom 3D model spawns and attaches to the player's chest. The interface renders live onto the prop's texture via DUI texture replacement. The player plays a holding animation while the device is active.

Use /movegeiger while the Geiger is open (overlay mode only). Use /resetgeigerpos to reset to defaults.

Radiation

Inside a radiation zone, radiation increases based on the zone's maxRadiation, force multiplier, and whether the zone is dynamic (distance-based) or flat. Vehicle and clothing protection reduce the effective amount.

Yes. Stored in the ml_player_radiation MySQL table. Auto-saved every 5 minutes and on player disconnect.

Only if Config.PlayerEffects.AutoRemove.Enabled = true. There is a 12-second grace period after leaving a zone before auto-removal starts. Otherwise, players must use cure items.

Screen effects intensify (vignette, darkness, EMP distortion) and periodic health damage applies. Damage thresholds are configurable, default is 1 HP at 500, up to 8 HP at 950, every 5 seconds.

Protection

Yes, if Config.VehicleProtection.Enabled = true. Default multiplier is 0.6, which is 40% protection. Motorcycles, bikes, boats, and helicopters provide no protection; planes are not excluded by default. Specific vehicles can have custom multipliers.

Define specific clothing component/drawable combinations in Config.ClothingProtection.Suits. Each suit has a protection percentage (e.g. hazmat = 70%). Both male and female variants should be defined.

They provide temporary percentage-based protection for a set duration in minutes. For example, iodine pills can give 100% protection for 10 minutes. The item is consumed on use.

Battery

While the Geiger Counter is active, battery drains every 60 seconds. Each item can have its own drain rate via batteryDrain (retro models drain faster at 0.8/min vs modern at 0.5/min). A warning notification appears when the battery drops below Config.Battery.lowThreshold (default 20%). At 0 battery, the Geiger closes automatically. Battery level is stored in the item's metadata and persists across sessions, auto-saved every 30 seconds while active.

By using the item defined in Config.Battery.rechargeItem (default item: battery) from their inventory. Each use consumes one item and restores Config.Battery.rechargeAmount percent (default 50%), capped at 100%.

Yes. Set Config.Battery.enabled = false. The Geiger Counter will run indefinitely without draining.

Zones

Three types: sphere, box, and poly (polygon). All use ox_lib zones internally.

When dynamic = true, radiation intensity increases as the player gets closer to the zone center. When false, radiation is constant throughout the zone at maxRadiation.

Yes. Set debug = true on any zone in Config.RadiationZones to see its wireframe.

Integration

Yes, three ways:

  • Server export: exports.ml_radiation:GetPlayerRadiation(source)
  • Client export: exports.ml_radiation:GetRadiation()
  • StateBag: LocalPlayer.state.radiation (synced every second)

Yes, via server exports: SetRadiation, AddRadiation, RemoveRadiation.

Set Config.HealthSystemIntegration = true. When ml_healthsystem is running, radiation damage and visual effects are handled by the health system instead of internally. The radiation accumulation and Geiger Counter UI continue to work normally.

Updates

  1. Download latest from CFX Portal
  2. Backup shared/config.lua and server/config_server.lua
  3. Replace all files except config
  4. Restart the resource

Radiation data is stored in the database and survives updates.