robloxmemoryapi 0.2.2__tar.gz → 0.2.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. {robloxmemoryapi-0.2.2/src/robloxmemoryapi.egg-info → robloxmemoryapi-0.2.2.1}/PKG-INFO +1 -1
  2. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/pyproject.toml +1 -1
  3. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/rbx/fflags.py +19 -15
  4. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1/src/robloxmemoryapi.egg-info}/PKG-INFO +1 -1
  5. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/LICENSE.md +0 -0
  6. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/README.md +0 -0
  7. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/setup.cfg +0 -0
  8. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/__init__.py +0 -0
  9. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/__init__.py +0 -0
  10. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/luau/__init__.py +0 -0
  11. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/luau/parser.py +0 -0
  12. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/memory.py +0 -0
  13. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/offsets.py +0 -0
  14. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/rbx/__init__.py +0 -0
  15. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/rbx/bytecode/decryptor.py +0 -0
  16. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/rbx/bytecode/encryptor.py +0 -0
  17. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/rbx/datastructures.py +0 -0
  18. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi/utils/rbx/instance.py +0 -0
  19. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi.egg-info/SOURCES.txt +0 -0
  20. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi.egg-info/dependency_links.txt +0 -0
  21. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi.egg-info/requires.txt +0 -0
  22. {robloxmemoryapi-0.2.2 → robloxmemoryapi-0.2.2.1}/src/robloxmemoryapi.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robloxmemoryapi
3
- Version: 0.2.2
3
+ Version: 0.2.2.1
4
4
  Summary: Python Library that abstracts reading and writing data from the Roblox DataModel
5
5
  Author-email: upio <notpoiu@users.noreply.github.com>, mstudio45 <mstudio45@users.noreply.github.com>, ActualMasterOogway <ActualMasterOogway@users.noreply.github.com>
6
6
  License: Copyright 2025 upio, mstudio45, master oogway
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "robloxmemoryapi"
7
- version = "0.2.2"
7
+ version = "0.2.2.1"
8
8
  description = "Python Library that abstracts reading and writing data from the Roblox DataModel"
9
9
  readme = { file = "README.md", content-type = "text/markdown" }
10
10
  requires-python = ">=3.9"
@@ -4,15 +4,16 @@ _MODULE_SIZE_LIMIT = 0x20000000
4
4
 
5
5
  # FLog level byte → display name.
6
6
  _FLOG_LEVELS = {
7
- 0: "None",
8
- 1: "Trace",
9
- 2: "Info",
7
+ 2: "Error",
10
8
  3: "Warning",
11
- 4: "Error",
12
- 5: "Assert",
13
- 6: "Fatal",
9
+ 4: "Info",
10
+ 5: "Debug",
11
+ 6: "Verbose",
12
+ 255: "None",
14
13
  }
15
14
 
15
+ _VALID_FLOG_LEVELS = set(_FLOG_LEVELS.keys())
16
+
16
17
  _FLOG_LEVELS_REV = {v: k for k, v in _FLOG_LEVELS.items()}
17
18
 
18
19
  def _decode_flog(raw_int: int) -> str:
@@ -77,7 +78,11 @@ class FFlagManager:
77
78
  return "bool", bool(raw[0])
78
79
  else:
79
80
  raw_int = int.from_bytes(raw[0:4], "little")
80
- return "string", _decode_flog(raw_int)
81
+ level_byte = (raw_int >> 8) & 0xFF
82
+ if level_byte in _VALID_FLOG_LEVELS:
83
+ return "flog", _decode_flog(raw_int)
84
+ else:
85
+ return "int", int.from_bytes(raw[0:4], "little", signed=True)
81
86
  else:
82
87
  str_len = int.from_bytes(raw[16:24], "little")
83
88
  str_cap = int.from_bytes(raw[24:32], "little")
@@ -146,17 +151,16 @@ class FFlagManager:
146
151
  self._mem.write_int(addr, value)
147
152
 
148
153
  elif flag_type == "string":
149
- if not isinstance(value, (str, int)):
150
- raise TypeError(f"Expected str or int for flag '{name}', got {type(value).__name__}")
154
+ if not isinstance(value, str):
155
+ raise TypeError(f"Expected str for flag '{name}', got {type(value).__name__}")
151
156
 
152
- _, current = self._reflect(name, offset)
153
- is_flog = isinstance(current, str) and "," in current
157
+ self._mem.write_string(addr, str(value))
154
158
 
155
- if is_flog:
156
- self._mem.write_int(addr, _encode_flog(str(value)) if isinstance(value, str) else value)
157
- else:
158
- self._mem.write_string(addr, str(value))
159
+ elif flag_type == "flog":
160
+ if not isinstance(value, (str, int)):
161
+ raise TypeError(f"Expected str or int for flag '{name}', got {type(value).__name__}")
159
162
 
163
+ self._mem.write_int(addr, _encode_flog(str(value)) if isinstance(value, str) else value)
160
164
  else:
161
165
  raise RuntimeError(f"Cannot write to flag with unknown type '{flag_type}'")
162
166
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robloxmemoryapi
3
- Version: 0.2.2
3
+ Version: 0.2.2.1
4
4
  Summary: Python Library that abstracts reading and writing data from the Roblox DataModel
5
5
  Author-email: upio <notpoiu@users.noreply.github.com>, mstudio45 <mstudio45@users.noreply.github.com>, ActualMasterOogway <ActualMasterOogway@users.noreply.github.com>
6
6
  License: Copyright 2025 upio, mstudio45, master oogway