diff --git a/.vscode/settings.json b/.vscode/settings.json
index a83b313e..bcad2d74 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,3 +1,13 @@
{
- "Lua.runtime.version": "LuaJIT"
+ "Lua.runtime.version": "LuaJIT",
+ "Lua.diagnostics.disable": [
+ "cast-local-type",
+ "param-type-mismatch",
+ "undefined-global",
+ "need-check-nil"
+ ],
+ "Lua.diagnostics.globals": [
+ "wait",
+ "async"
+ ]
}
\ No newline at end of file
diff --git a/quant.ew/files/resource/entities/client.xml b/quant.ew/files/resource/entities/client.xml
index 181ddc0a..3eb2392e 100644
--- a/quant.ew/files/resource/entities/client.xml
+++ b/quant.ew/files/resource/entities/client.xml
@@ -309,10 +309,6 @@
eating_cells_per_frame="2"
>
-
-
-
-
0.05 then
+ GamePrint("Removing "..effect_by_index[index])
+ EntityRemoveStainStatusEffect(entity, effect_by_index[index])
+ end
+ end
+end
+
+function module.on_world_update()
+ if GameGetFrameNum() % 30 ~= 13 then
+ return
+ end
+ local entity = ctx.my_player.entity
+ local effect_data = EntityGetFirstComponent(entity, "StatusEffectDataComponent")
+ if effect_data == nil or effect_data == 0 then
+ return
+ end
+
+ local stains = ComponentGetValue2(effect_data, "stain_effects")
+ local present_stains = {}
+ -- For some reason whatever value is at index 1 isn't used?
+ for i=2, #stains do
+ table.insert(present_stains, stains[i] > 0.05)
+ if stains[i] > 0.05 then
+ GamePrint(effect_by_index[i-1])
+ end
+ end
+ rpc.send_present_stains(present_stains)
+end
+
+return module
diff --git a/quant.ew/files/system/player/unmodified_base.xml b/quant.ew/files/system/player/unmodified_base.xml
index 0a240a6b..69e62113 100644
--- a/quant.ew/files/system/player/unmodified_base.xml
+++ b/quant.ew/files/system/player/unmodified_base.xml
@@ -310,9 +310,6 @@
>
-
-
-