This page documents globals registered by ScriptSystem in src/game/script.rs.
Context is replaced per script execution.
Context:ent_id() → u32Context:target_ent_id() → u32 | nilContext:ent_id() → u32Context:other_ent_id() → u32Context:ent_id() → u32Context:target_ent_id() → u32Context:interaction_type() → stringContext:ent_id() → u32Context:killer_ent_id() → u32Context:src_ent_id() → u32Context:tgt_ent_id() → u32Context:damage_amount() → u32Context:damage_type() → u16 (bitflags)queue_interaction(interaction_type: string, src_ent_id: u32, tgt_ent_id: u32)send_chat_message(tgt_ent_id: u32, message: string)cancel_interaction(ent_id: u32)log(message: string)get_quest_stage(ent_id: u32, quest_res_id: i64) → i64set_quest_stage(ent_id: u32, quest_res_id: i64, stage: i64)get_quest_flag(ent_id: u32, quest_flag_name: string) → boolset_quest_flag(ent_id: u32, quest_flag_name: string, val: bool)set_player_dialog_node(ent_id: u32, node: i64)tp(ent_id, …)tp(ent_id, “tag”)tp(ent_id, x, y)tp(ent_id, {x, y}) or tp(ent_id, {x=…, y=…})time_of_day() → TimeOfDaydelete_entity(ent_id: u32)set_entity_active(ent_id: u32, is_active: bool)spawn_effect_on_entity(ent_id: u32, effect_id: i64)spawn_entity_at_player(entity_name: string, player_ent_id: u32)lock_door(ent_id: u32)unlock_door(ent_id: u32)lock_vehicle(ent_id: u32)unlock_vehicle(ent_id: u32)is_inventory_space_available(ent_id: u32, item_res_name: string, quantity: u32) → booladd_item(ent_id: u32, item_res_name: string, quantity: u32) → u32 (bag slot)remove_item(ent_id: u32, item_res_name: string, quantity: u32) → boolinventory_remove_item_in_bag_slot(ent_id: u32, bag_slot: u8, quantity: u32) → boolinventory_find_item_with_enchantment(ent_id: u32, item_res_name: string, enchantment_id: i64) → i32 (-1 if not found)inventory_get_item_quantity(ent_id: u32, item_res_name: string) → u32inventory_clear(ent_id: u32)get_item_in_slot(ent_id: u32, slot: string) → i64 | nilis_item_equipped(ent_id: u32, item_res_name: string) → boolunequip_item_in_slot(ent_id: u32, slot: string) → boolequipment_clear(ent_id: u32)add_exp(ent_id: u32, skill_name: string, exp: u32)cyberware_remove_all(ent_id: u32)is_entity_augmented(ent_id: u32) → boolset_weather(weather: string)open_modal(tgt_ent_id: u32, title: string, content: string, is_closable: bool)get_entity_tag(ent_id: u32) → string | nilget_entity_stat_u32(ent_id: u32, stat: u8) → u32 | nilset_entity_stat(ent_id: u32, stat: u8, value: f32)damage_type is a bitflag number. Compare against values from require(“damage_type”).script_name; the cache is cleared when scripting globals are reloaded.local common = require("common") local Stat = require("stat") local ent = Context:ent_id() log("hello from lua, ent=" .. ent) local hp = get_entity_stat_u32(ent, Stat.CurrentHealth) if hp ~= nil and hp < 5 then common.open_modal("Warning", "Low HP", true, ent) end