CATEGORY 18 OF 24 · 874 ICONS
FiveM industrial props — page 4
Page 4 of 8: models 361 to 480 of the 874 in this group, in model-name order. Pipework, tanks, generators, pumps, ducting, vents, cable runs, fuse boxes, pallets, girders, scaffolding and the heavy machinery the docks and the oil fields are built from. The group a warehouse, bunker or construction interior gets dressed with.
874 of the 18,574 models in the whole icon library — 4.7% of it. Every one is a 96×96 PNG on a transparent background, rendered from the game's own model, and every card carries the model name, the hash CreateObject takes and a suggested item key. As with the rest of the library, most of these renders read close to grey: the render pass lit the geometry instead of baking the full material, so they come out as monochrome silhouettes rather than painted artwork.
Showing 361 to 480 of 874 · page 4 of 8
- Byard Motor

prop_byard_motor_02 - Byard Motor

prop_byard_motor_03 - Byard Net02

prop_byard_net02 - Byard Pipe

prop_byard_pipe_01 - Byard Pipes01

prop_byard_pipes01 - Byard Planks01

prop_byard_planks01 - Byard Pulley01

prop_byard_pulley01 - Byard Rack

prop_byard_rack - Byard Rampold

prop_byard_rampold - Byard Rampold Cr

prop_byard_rampold_cr - Byard Scfhold01

prop_byard_scfhold01 - Byard Sleeper01

prop_byard_sleeper01 - Byard Sleeper02

prop_byard_sleeper02 - Byard Tank

prop_byard_tank_01 - Cable Hook

prop_cable_hook_01 - Cablespool

prop_cablespool_01a - Cablespool

prop_cablespool_01b - Cablespool

prop_cablespool_02 - Cablespool

prop_cablespool_03 - Cablespool

prop_cablespool_04 - Cablespool

prop_cablespool_05 - Cablespool

prop_cablespool_06 - Cattlecrush

prop_cattlecrush - Cementmixer

prop_cementmixer_02a - Compressor

prop_compressor_01 - Compressor

prop_compressor_02 - Compressor

prop_compressor_03 - Cons Plank

prop_cons_plank - Cons Ply01

prop_cons_ply01 - Cons Ply02

prop_cons_ply02 - Conschute

prop_conschute - Cont Chiller

prop_cont_chiller_01 - Crane 01 Truck1

prop_crane_01_truck1 - Crane 01 Truck2

prop_crane_01_truck2 - Aircon

prop_cs_aircon_01 - Aircon Fan

prop_cs_aircon_fan - Fertilizer

prop_cs_fertilizer - Fuel Hose

prop_cs_fuel_hose - Fuel Nozle

prop_cs_fuel_nozle - Leg Chain

prop_cs_leg_chain_01 - Panel

prop_cs_panel_01 - Petrol Can

prop_cs_petrol_can - Server Drive

prop_cs_server_drive - Valve

prop_cs_valve - Vent Cover

prop_cs_vent_cover - Diggerbkt

prop_diggerbkt_01 - Dock Bouy

prop_dock_bouy_1 - Dock Bouy

prop_dock_bouy_2 - Dock Bouy

prop_dock_bouy_3 - Dock Bouy

prop_dock_bouy_5 - Dock Crane

prop_dock_crane_01 - Dock Crane

prop_dock_crane_02 - Dock Crane 02 Cab

prop_dock_crane_02_cab - Dock Crane 02 Hook

prop_dock_crane_02_hook - Dock Crane 02 Ld

prop_dock_crane_02_ld - Dock Crane

prop_dock_crane_04 - Dock Crane Lift

prop_dock_crane_lift - Dock Float

prop_dock_float_1 - Dock Float

prop_dock_float_1b - Dock Moor

prop_dock_moor_01 - Dock Moor

prop_dock_moor_04 - Dock Moor

prop_dock_moor_05 - Dock Moor

prop_dock_moor_06 - Dock Moor

prop_dock_moor_07 - Dock Ropefloat

prop_dock_ropefloat - Dock Rtg

prop_dock_rtg_01 - Dock Rtg Ld

prop_dock_rtg_ld - Dock Woodpole1

prop_dock_woodpole1 - Dock Woodpole2

prop_dock_woodpole2 - Dock Woodpole3

prop_dock_woodpole3 - Dock Woodpole4

prop_dock_woodpole4 - Dock Woodpole5

prop_dock_woodpole5 - Drywallpile

prop_drywallpile_01 - Drywallpile

prop_drywallpile_02 - Ecg 01 Cable

prop_ecg_01_cable_01 - Ecg 01 Cable

prop_ecg_01_cable_02 - Elecbox

prop_elecbox_03a - Elecbox

prop_elecbox_10 - Elecbox 10 Cr

prop_elecbox_10_cr - Elecbox

prop_elecbox_12 - Elecbox

prop_elecbox_13 - Elecbox

prop_elecbox_14 - Elecbox

prop_elecbox_15 - Elecbox 15 Cr

prop_elecbox_15_cr - Elecbox

prop_elecbox_16 - Elecbox

prop_elecbox_17 - Elecbox 17 Cr

prop_elecbox_17_cr - Elecbox

prop_elecbox_18 - Elecbox

prop_elecbox_19 - Elecbox

prop_elecbox_20 - Elecbox

prop_elecbox_21 - Elecbox

prop_elecbox_22 - Elecbox

prop_elecbox_23 - Elecbox

prop_elecbox_24 - Elecbox

prop_elecbox_24b - Elecbox

prop_elecbox_25 - Fac Machine

prop_fac_machine_02 - Fan

prop_fan_01 - Feeder1

prop_feeder1 - Feeder1 Cr

prop_feeder1_cr - Fire Driser

prop_fire_driser_1a - Fire Driser

prop_fire_driser_1b - Fire Driser

prop_fire_driser_2b - Fire Driser

prop_fire_driser_3b - Fire Driser

prop_fire_driser_4a - Fire Driser

prop_fire_driser_4b - Fire Hosereel

prop_fire_hosereel - Fire Hosereel

prop_fire_hosereel_l1 - Gas

prop_gas_01 - Gas

prop_gas_02 - Gas

prop_gas_03 - Gas

prop_gas_04 - Gas

prop_gas_05 - Gascage01

prop_gascage01 - Gate Docks Ld

prop_gate_docks_ld - Generator

prop_generator_02a - Generator

prop_generator_03a - Generator

prop_generator_04 - Girder

prop_girder_01a - Grain Hopper

prop_grain_hopper
Every icon on this page, written out for ox_inventory. Pictures go in ox_inventory/web/images/, named after the key.
-- ox_inventory/data/items.lua
-- Drop the pictures in ox_inventory/web/images/
-- No client.image line is needed: a .png named after the item key is what
-- ox_inventory looks for by default.
return {
['byard_motor'] = {
label = 'Byard Motor',
weight = 500,
stack = true,
close = true,
description = 'Byard Motor',
},
['byard_motor_2'] = {
label = 'Byard Motor',
weight = 500,
stack = true,
close = true,
description = 'Byard Motor',
},
['byard_net02'] = {
label = 'Byard Net02',
weight = 500,
stack = true,
close = true,
description = 'Byard Net02',
},
['byard_pipe'] = {
label = 'Byard Pipe',
weight = 500,
stack = true,
close = true,
description = 'Byard Pipe',
},
['byard_pipes01'] = {
label = 'Byard Pipes01',
weight = 500,
stack = true,
close = true,
description = 'Byard Pipes01',
},
['byard_planks01'] = {
label = 'Byard Planks01',
weight = 500,
stack = true,
close = true,
description = 'Byard Planks01',
},
['byard_pulley01'] = {
label = 'Byard Pulley01',
weight = 500,
stack = true,
close = true,
description = 'Byard Pulley01',
},
['byard_rack'] = {
label = 'Byard Rack',
weight = 500,
stack = true,
close = true,
description = 'Byard Rack',
},
['byard_rampold'] = {
label = 'Byard Rampold',
weight = 500,
stack = true,
close = true,
description = 'Byard Rampold',
},
['byard_rampold_cr'] = {
label = 'Byard Rampold Cr',
weight = 500,
stack = true,
close = true,
description = 'Byard Rampold Cr',
},
['byard_scfhold01'] = {
label = 'Byard Scfhold01',
weight = 500,
stack = true,
close = true,
description = 'Byard Scfhold01',
},
['byard_sleeper01'] = {
label = 'Byard Sleeper01',
weight = 500,
stack = true,
close = true,
description = 'Byard Sleeper01',
},
['byard_sleeper02'] = {
label = 'Byard Sleeper02',
weight = 500,
stack = true,
close = true,
description = 'Byard Sleeper02',
},
['byard_tank'] = {
label = 'Byard Tank',
weight = 500,
stack = true,
close = true,
description = 'Byard Tank',
},
['cable_hook'] = {
label = 'Cable Hook',
weight = 500,
stack = true,
close = true,
description = 'Cable Hook',
},
['cablespool'] = {
label = 'Cablespool',
weight = 500,
stack = true,
close = true,
description = 'Cablespool',
},
['cablespool_2'] = {
label = 'Cablespool',
weight = 500,
stack = true,
close = true,
description = 'Cablespool',
},
['cablespool_3'] = {
label = 'Cablespool',
weight = 500,
stack = true,
close = true,
description = 'Cablespool',
},
['cablespool_4'] = {
label = 'Cablespool',
weight = 500,
stack = true,
close = true,
description = 'Cablespool',
},
['cablespool_5'] = {
label = 'Cablespool',
weight = 500,
stack = true,
close = true,
description = 'Cablespool',
},
['cablespool_6'] = {
label = 'Cablespool',
weight = 500,
stack = true,
close = true,
description = 'Cablespool',
},
['cablespool_7'] = {
label = 'Cablespool',
weight = 500,
stack = true,
close = true,
description = 'Cablespool',
},
['cattlecrush'] = {
label = 'Cattlecrush',
weight = 500,
stack = true,
close = true,
description = 'Cattlecrush',
},
['cementmixer'] = {
label = 'Cementmixer',
weight = 500,
stack = true,
close = true,
description = 'Cementmixer',
},
['compressor'] = {
label = 'Compressor',
weight = 500,
stack = true,
close = true,
description = 'Compressor',
},
['compressor_2'] = {
label = 'Compressor',
weight = 500,
stack = true,
close = true,
description = 'Compressor',
},
['compressor_3'] = {
label = 'Compressor',
weight = 500,
stack = true,
close = true,
description = 'Compressor',
},
['cons_plank'] = {
label = 'Cons Plank',
weight = 500,
stack = true,
close = true,
description = 'Cons Plank',
},
['cons_ply01'] = {
label = 'Cons Ply01',
weight = 500,
stack = true,
close = true,
description = 'Cons Ply01',
},
['cons_ply02'] = {
label = 'Cons Ply02',
weight = 500,
stack = true,
close = true,
description = 'Cons Ply02',
},
['conschute'] = {
label = 'Conschute',
weight = 500,
stack = true,
close = true,
description = 'Conschute',
},
['cont_chiller'] = {
label = 'Cont Chiller',
weight = 500,
stack = true,
close = true,
description = 'Cont Chiller',
},
['crane_01_truck1'] = {
label = 'Crane 01 Truck1',
weight = 500,
stack = true,
close = true,
description = 'Crane 01 Truck1',
},
['crane_01_truck2'] = {
label = 'Crane 01 Truck2',
weight = 500,
stack = true,
close = true,
description = 'Crane 01 Truck2',
},
['aircon'] = {
label = 'Aircon',
weight = 500,
stack = true,
close = true,
description = 'Aircon',
},
['aircon_fan'] = {
label = 'Aircon Fan',
weight = 500,
stack = true,
close = true,
description = 'Aircon Fan',
},
['fertilizer'] = {
label = 'Fertilizer',
weight = 500,
stack = true,
close = true,
description = 'Fertilizer',
},
['fuel_hose'] = {
label = 'Fuel Hose',
weight = 500,
stack = true,
close = true,
description = 'Fuel Hose',
},
['fuel_nozle'] = {
label = 'Fuel Nozle',
weight = 500,
stack = true,
close = true,
description = 'Fuel Nozle',
},
['leg_chain'] = {
label = 'Leg Chain',
weight = 500,
stack = true,
close = true,
description = 'Leg Chain',
},
['panel'] = {
label = 'Panel',
weight = 500,
stack = true,
close = true,
description = 'Panel',
},
['petrol_can'] = {
label = 'Petrol Can',
weight = 500,
stack = true,
close = true,
description = 'Petrol Can',
},
['server_drive'] = {
label = 'Server Drive',
weight = 500,
stack = true,
close = true,
description = 'Server Drive',
},
['valve'] = {
label = 'Valve',
weight = 500,
stack = true,
close = true,
description = 'Valve',
},
['vent_cover'] = {
label = 'Vent Cover',
weight = 500,
stack = true,
close = true,
description = 'Vent Cover',
},
['diggerbkt'] = {
label = 'Diggerbkt',
weight = 500,
stack = true,
close = true,
description = 'Diggerbkt',
},
['dock_bouy'] = {
label = 'Dock Bouy',
weight = 500,
stack = true,
close = true,
description = 'Dock Bouy',
},
['dock_bouy_2'] = {
label = 'Dock Bouy',
weight = 500,
stack = true,
close = true,
description = 'Dock Bouy',
},
['dock_bouy_3'] = {
label = 'Dock Bouy',
weight = 500,
stack = true,
close = true,
description = 'Dock Bouy',
},
['dock_bouy_4'] = {
label = 'Dock Bouy',
weight = 500,
stack = true,
close = true,
description = 'Dock Bouy',
},
['dock_crane'] = {
label = 'Dock Crane',
weight = 500,
stack = true,
close = true,
description = 'Dock Crane',
},
['dock_crane_2'] = {
label = 'Dock Crane',
weight = 500,
stack = true,
close = true,
description = 'Dock Crane',
},
['dock_crane_02_cab'] = {
label = 'Dock Crane 02 Cab',
weight = 500,
stack = true,
close = true,
description = 'Dock Crane 02 Cab',
},
['dock_crane_02_hook'] = {
label = 'Dock Crane 02 Hook',
weight = 500,
stack = true,
close = true,
description = 'Dock Crane 02 Hook',
},
['dock_crane_02_ld'] = {
label = 'Dock Crane 02 Ld',
weight = 500,
stack = true,
close = true,
description = 'Dock Crane 02 Ld',
},
['dock_crane_3'] = {
label = 'Dock Crane',
weight = 500,
stack = true,
close = true,
description = 'Dock Crane',
},
['dock_crane_lift'] = {
label = 'Dock Crane Lift',
weight = 500,
stack = true,
close = true,
description = 'Dock Crane Lift',
},
['dock_float'] = {
label = 'Dock Float',
weight = 500,
stack = true,
close = true,
description = 'Dock Float',
},
['dock_float_2'] = {
label = 'Dock Float',
weight = 500,
stack = true,
close = true,
description = 'Dock Float',
},
['dock_moor'] = {
label = 'Dock Moor',
weight = 500,
stack = true,
close = true,
description = 'Dock Moor',
},
['dock_moor_2'] = {
label = 'Dock Moor',
weight = 500,
stack = true,
close = true,
description = 'Dock Moor',
},
['dock_moor_3'] = {
label = 'Dock Moor',
weight = 500,
stack = true,
close = true,
description = 'Dock Moor',
},
['dock_moor_4'] = {
label = 'Dock Moor',
weight = 500,
stack = true,
close = true,
description = 'Dock Moor',
},
['dock_moor_5'] = {
label = 'Dock Moor',
weight = 500,
stack = true,
close = true,
description = 'Dock Moor',
},
['dock_ropefloat'] = {
label = 'Dock Ropefloat',
weight = 500,
stack = true,
close = true,
description = 'Dock Ropefloat',
},
['dock_rtg'] = {
label = 'Dock Rtg',
weight = 500,
stack = true,
close = true,
description = 'Dock Rtg',
},
['dock_rtg_ld'] = {
label = 'Dock Rtg Ld',
weight = 500,
stack = true,
close = true,
description = 'Dock Rtg Ld',
},
['dock_woodpole1'] = {
label = 'Dock Woodpole1',
weight = 500,
stack = true,
close = true,
description = 'Dock Woodpole1',
},
['dock_woodpole2'] = {
label = 'Dock Woodpole2',
weight = 500,
stack = true,
close = true,
description = 'Dock Woodpole2',
},
['dock_woodpole3'] = {
label = 'Dock Woodpole3',
weight = 500,
stack = true,
close = true,
description = 'Dock Woodpole3',
},
['dock_woodpole4'] = {
label = 'Dock Woodpole4',
weight = 500,
stack = true,
close = true,
description = 'Dock Woodpole4',
},
['dock_woodpole5'] = {
label = 'Dock Woodpole5',
weight = 500,
stack = true,
close = true,
description = 'Dock Woodpole5',
},
['drywallpile'] = {
label = 'Drywallpile',
weight = 500,
stack = true,
close = true,
description = 'Drywallpile',
},
['drywallpile_2'] = {
label = 'Drywallpile',
weight = 500,
stack = true,
close = true,
description = 'Drywallpile',
},
['ecg_01_cable'] = {
label = 'Ecg 01 Cable',
weight = 500,
stack = true,
close = true,
description = 'Ecg 01 Cable',
},
['ecg_01_cable_2'] = {
label = 'Ecg 01 Cable',
weight = 500,
stack = true,
close = true,
description = 'Ecg 01 Cable',
},
['elecbox'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_2'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_10_cr'] = {
label = 'Elecbox 10 Cr',
weight = 500,
stack = true,
close = true,
description = 'Elecbox 10 Cr',
},
['elecbox_3'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_4'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_5'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_6'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_15_cr'] = {
label = 'Elecbox 15 Cr',
weight = 500,
stack = true,
close = true,
description = 'Elecbox 15 Cr',
},
['elecbox_7'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_8'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_17_cr'] = {
label = 'Elecbox 17 Cr',
weight = 500,
stack = true,
close = true,
description = 'Elecbox 17 Cr',
},
['elecbox_9'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_10'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_11'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_12'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_13'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_14'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_15'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_16'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['elecbox_17'] = {
label = 'Elecbox',
weight = 500,
stack = true,
close = true,
description = 'Elecbox',
},
['fac_machine'] = {
label = 'Fac Machine',
weight = 500,
stack = true,
close = true,
description = 'Fac Machine',
},
['fan'] = {
label = 'Fan',
weight = 500,
stack = true,
close = true,
description = 'Fan',
},
['feeder1'] = {
label = 'Feeder1',
weight = 500,
stack = true,
close = true,
description = 'Feeder1',
},
['feeder1_cr'] = {
label = 'Feeder1 Cr',
weight = 500,
stack = true,
close = true,
description = 'Feeder1 Cr',
},
['fire_driser'] = {
label = 'Fire Driser',
weight = 500,
stack = true,
close = true,
description = 'Fire Driser',
},
['fire_driser_2'] = {
label = 'Fire Driser',
weight = 500,
stack = true,
close = true,
description = 'Fire Driser',
},
['fire_driser_3'] = {
label = 'Fire Driser',
weight = 500,
stack = true,
close = true,
description = 'Fire Driser',
},
['fire_driser_4'] = {
label = 'Fire Driser',
weight = 500,
stack = true,
close = true,
description = 'Fire Driser',
},
['fire_driser_5'] = {
label = 'Fire Driser',
weight = 500,
stack = true,
close = true,
description = 'Fire Driser',
},
['fire_driser_6'] = {
label = 'Fire Driser',
weight = 500,
stack = true,
close = true,
description = 'Fire Driser',
},
['fire_hosereel'] = {
label = 'Fire Hosereel',
weight = 500,
stack = true,
close = true,
description = 'Fire Hosereel',
},
['fire_hosereel_2'] = {
label = 'Fire Hosereel',
weight = 500,
stack = true,
close = true,
description = 'Fire Hosereel',
},
['gas'] = {
label = 'Gas',
weight = 500,
stack = true,
close = true,
description = 'Gas',
},
['gas_2'] = {
label = 'Gas',
weight = 500,
stack = true,
close = true,
description = 'Gas',
},
['gas_3'] = {
label = 'Gas',
weight = 500,
stack = true,
close = true,
description = 'Gas',
},
['gas_4'] = {
label = 'Gas',
weight = 500,
stack = true,
close = true,
description = 'Gas',
},
['gas_5'] = {
label = 'Gas',
weight = 500,
stack = true,
close = true,
description = 'Gas',
},
['gascage01'] = {
label = 'Gascage01',
weight = 500,
stack = true,
close = true,
description = 'Gascage01',
},
['gate_docks_ld'] = {
label = 'Gate Docks Ld',
weight = 500,
stack = true,
close = true,
description = 'Gate Docks Ld',
},
['generator'] = {
label = 'Generator',
weight = 500,
stack = true,
close = true,
description = 'Generator',
},
['generator_2'] = {
label = 'Generator',
weight = 500,
stack = true,
close = true,
description = 'Generator',
},
['generator_3'] = {
label = 'Generator',
weight = 500,
stack = true,
close = true,
description = 'Generator',
},
['girder'] = {
label = 'Girder',
weight = 500,
stack = true,
close = true,
description = 'Girder',
},
['grain_hopper'] = {
label = 'Grain Hopper',
weight = 500,
stack = true,
close = true,
description = 'Grain Hopper',
},
}
HOW THIS GROUP IS DECIDED
Why a model lands in industrial
Nothing here was hand-sorted one model at a time. The rules read the model name, which is the only honest thing to sort 18,000 objects by.
The game names an object after what it is and stamps the update that shipped it on the front, so a name like prop_byard_motor_02 carries a usable word in the middle of it. The rules look for those words, the nine item-like groups get first refusal, and a model only reaches this group when nothing earlier claimed it.
A rule that reads names gets the obvious ones right and the ambiguous ones arguable. A crate of beer is food, not a container; a log fence has the word log in it. If something here is plainly in the wrong place, the model name on the card is all we need to fix it.
Nine groups are the ones an inventory wants — food and drink, tools, medical, electronics, valuables, documents, containers, smoking and gear. The rest, this one included if it is not in that list, are map material: use the name and the hash, and treat the picture as a way of recognising the thing.
Any model name containing _lod was left out of the whole library. Those are the low-detail stand-ins the engine swaps in at distance, and their renders are blurred copies of models that are already listed.
THE OTHER GROUPS
Keep looking
Bottles, cans, cartons, plates and the takeaway the game models for its shops.
Tools — 358Hand tools, power tools and the boxes they live in — the mechanic and crafting staples.
Medical — 105Syringes, vials, pill bottles and the rest of the small clinical props.
Electronics — 737Phones, laptops, radios, batteries and the media the game still ships on discs.
Valuables — 377Cash, gold, jewels and the heist props built around carrying them.
Documents — 344Cards, passports, folders, notes and printed matter for paperwork scripts.
Everything at onceAll 18,574 icons, the search across the whole set, and the 24 categories with their counts.
Inventory icon makerYour own pictures instead of ours: background flooded away, the item squared and centred, items.lua written in the browser.