Skip to content
This repository was archived by the owner on Jun 26, 2025. It is now read-only.

Commit 09566d3

Browse files
authored
Update Roblox-FFlag-Editor.py
1 parent 2099f02 commit 09566d3

File tree

1 file changed

+36
-20
lines changed

1 file changed

+36
-20
lines changed

Roblox-FFlag-Editor.py

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import os
22
import json
33
from PyQt5 import QtWidgets
4+
from PyQt5 import QtCore
45

56
class RobloxFFlagEditor(QtWidgets.QWidget):
67
def __init__(self):
78
super().__init__()
8-
self.setWindowTitle("Roblox FFlag Editor - @GiFXED (Beta 3)")
9+
self.setWindowTitle("Roblox FFlag Editor - @GiFXED (Beta 3.5)")
910
self.setFixedSize(400, 600)
1011
self.initUI()
1112
self.ensure_json_exists()
@@ -16,12 +17,15 @@ def initUI(self):
1617
self.tabs = QtWidgets.QTabWidget()
1718
self.basic_tab = QtWidgets.QWidget()
1819
self.advanced_tab = QtWidgets.QWidget()
20+
self.info_tab = QtWidgets.QWidget()
1921
self.tabs.addTab(self.basic_tab, "Basic Controls")
2022
self.tabs.addTab(self.advanced_tab, "Advanced Controls")
23+
self.tabs.addTab(self.info_tab, "info")
2124

2225
self.basic_layout = QtWidgets.QVBoxLayout(self.basic_tab)
2326
self.advanced_layout = QtWidgets.QVBoxLayout(self.advanced_tab)
24-
27+
self.info_layout = QtWidgets.QVBoxLayout(self.info_tab)
28+
2529
self.noclip_button = QtWidgets.QPushButton("Toggle Noclip")
2630
self.noclip_button.clicked.connect(lambda: self.toggle_fflag("Noclip", noclip_flags))
2731
self.basic_layout.addWidget(self.noclip_button)
@@ -45,35 +49,35 @@ def initUI(self):
4549
self.gravity_button.clicked.connect(lambda: self.set_flags(low_gravity_flags))
4650
self.basic_layout.addWidget(self.gravity_button)
4751

48-
self.no_animations_button = QtWidgets.QPushButton("Toggle No Animations")
49-
self.no_animations_button.clicked.connect(lambda: self.toggle_fflag("No Animations", no_animations_flags))
52+
self.no_animations_button = QtWidgets.QPushButton("No Animations")
53+
self.no_animations_button.clicked.connect(lambda: self.set_flags(no_animations_flags))
5054
self.basic_layout.addWidget(self.no_animations_button)
5155

52-
self.xray_button = QtWidgets.QPushButton("Toggle Xray")
53-
self.xray_button.clicked.connect(lambda: self.toggle_fflag("Xray", xray_flags))
56+
self.xray_button = QtWidgets.QPushButton("Xray")
57+
self.xray_button.clicked.connect(lambda: self.set_flags(xray_flags))
5458
self.basic_layout.addWidget(self.xray_button)
5559

56-
self.disable_telemetry_button = QtWidgets.QPushButton("Toggle Disable Telemetry")
57-
self.disable_telemetry_button.clicked.connect(lambda: self.toggle_fflag("Disable Telemetry", disable_telemetry_flags))
60+
self.disable_telemetry_button = QtWidgets.QPushButton("Disable Telemetry")
61+
self.disable_telemetry_button.clicked.connect(lambda: self.set_flags(disable_telemetry_flags))
5862
self.basic_layout.addWidget(self.disable_telemetry_button)
5963

60-
self.disable_touch_events_button = QtWidgets.QPushButton("Toggle Disable Touch Events")
61-
self.disable_touch_events_button.clicked.connect(lambda: self.toggle_fflag("Disable Touch Events", disable_touch_events_flags))
64+
self.disable_touch_events_button = QtWidgets.QPushButton("Disable touch events")
65+
self.disable_telemetry_button.clicked.connect(lambda: self.set_flags(disable_touch_events_flags))
6266
self.basic_layout.addWidget(self.disable_touch_events_button)
6367

64-
self.disable_ads_button = QtWidgets.QPushButton("Toggle Disable In-game Ads")
68+
self.disable_ads_button = QtWidgets.QPushButton("Disable In-game Ads")
6569
self.disable_ads_button.clicked.connect(lambda: self.toggle_fflag("Disable In-game Ads", disable_ads_flags))
6670
self.basic_layout.addWidget(self.disable_ads_button)
6771

68-
self.disable_remote_events_button = QtWidgets.QPushButton("Toggle Disable Remote Events")
72+
self.disable_remote_events_button = QtWidgets.QPushButton("Disable Remote Events")
6973
self.disable_remote_events_button.clicked.connect(lambda: self.toggle_fflag("Disable Remote Events", disable_remote_events_flags))
7074
self.basic_layout.addWidget(self.disable_remote_events_button)
7175

7276
self.max_zoom_label = QtWidgets.QLabel("Set Max Zoom Distance:")
7377
self.basic_layout.addWidget(self.max_zoom_label)
7478

7579
self.max_zoom_input = QtWidgets.QSpinBox(self)
76-
self.max_zoom_input.setRange(10, 9999)
80+
self.max_zoom_input.setRange(10, 69420)
7781
self.basic_layout.addWidget(self.max_zoom_input)
7882

7983
self.set_zoom_button = QtWidgets.QPushButton("Set Max Zoom Distance")
@@ -112,6 +116,16 @@ def initUI(self):
112116
self.log_advanced.setReadOnly(True)
113117
self.advanced_layout.addWidget(self.log_advanced)
114118

119+
self.info_label = QtWidgets.QLabel(
120+
"Roblox FFlag Editor\n"
121+
"Developer: @Teemsploit\n"
122+
"If you find this repository useful, don't forget to star!\n"
123+
"Report any bugs on GitHub."
124+
"\n\n\n Contact:\nEmail: gifxed@proton.me\nDiscord: teemsploit\nYoutube: Teemsploit"
125+
)
126+
self.info_label.setAlignment(QtCore.Qt.AlignCenter)
127+
self.info_layout.addWidget(self.info_label)
128+
115129
self.beta_warning = QtWidgets.QLabel("This is a beta version. Report bugs on the GitHub repo.")
116130
self.basic_layout.addWidget(self.beta_warning)
117131

@@ -170,13 +184,15 @@ def load_json(self):
170184
def toggle_fflag(self, flag_name, flag_data):
171185
data = self.load_json()
172186

173-
if flag_name in data:
174-
self.log.append(f"Disabling {flag_name}...")
175-
for key in flag_data:
176-
data.pop(key, None)
177-
else:
178-
self.log.append(f"Enabling {flag_name}...")
179-
data.update(flag_data)
187+
if flag_name == "Noclip":
188+
if "FFlagDebugSimDefaultPrimalSolver" in data:
189+
self.log.append("Disabling Noclip...")
190+
data.pop("FFlagDebugSimDefaultPrimalSolver", None)
191+
data.pop("DFIntMaximumFreefallMoveTimeInTenths", None)
192+
data.pop("DFIntDebugSimPrimalStiffness", None)
193+
else:
194+
self.log.append("Enabling Noclip...")
195+
data.update(flag_data[0])
180196

181197
self.save_json(data)
182198

0 commit comments

Comments
 (0)