1
1
import os
2
2
import json
3
3
from PyQt5 import QtWidgets
4
+ from PyQt5 import QtCore
4
5
5
6
class RobloxFFlagEditor (QtWidgets .QWidget ):
6
7
def __init__ (self ):
7
8
super ().__init__ ()
8
- self .setWindowTitle ("Roblox FFlag Editor - @GiFXED (Beta 3)" )
9
+ self .setWindowTitle ("Roblox FFlag Editor - @GiFXED (Beta 3.5 )" )
9
10
self .setFixedSize (400 , 600 )
10
11
self .initUI ()
11
12
self .ensure_json_exists ()
@@ -16,12 +17,15 @@ def initUI(self):
16
17
self .tabs = QtWidgets .QTabWidget ()
17
18
self .basic_tab = QtWidgets .QWidget ()
18
19
self .advanced_tab = QtWidgets .QWidget ()
20
+ self .info_tab = QtWidgets .QWidget ()
19
21
self .tabs .addTab (self .basic_tab , "Basic Controls" )
20
22
self .tabs .addTab (self .advanced_tab , "Advanced Controls" )
23
+ self .tabs .addTab (self .info_tab , "info" )
21
24
22
25
self .basic_layout = QtWidgets .QVBoxLayout (self .basic_tab )
23
26
self .advanced_layout = QtWidgets .QVBoxLayout (self .advanced_tab )
24
-
27
+ self .info_layout = QtWidgets .QVBoxLayout (self .info_tab )
28
+
25
29
self .noclip_button = QtWidgets .QPushButton ("Toggle Noclip" )
26
30
self .noclip_button .clicked .connect (lambda : self .toggle_fflag ("Noclip" , noclip_flags ))
27
31
self .basic_layout .addWidget (self .noclip_button )
@@ -45,35 +49,35 @@ def initUI(self):
45
49
self .gravity_button .clicked .connect (lambda : self .set_flags (low_gravity_flags ))
46
50
self .basic_layout .addWidget (self .gravity_button )
47
51
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 ))
50
54
self .basic_layout .addWidget (self .no_animations_button )
51
55
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 ))
54
58
self .basic_layout .addWidget (self .xray_button )
55
59
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 ))
58
62
self .basic_layout .addWidget (self .disable_telemetry_button )
59
63
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 ))
62
66
self .basic_layout .addWidget (self .disable_touch_events_button )
63
67
64
- self .disable_ads_button = QtWidgets .QPushButton ("Toggle Disable In-game Ads" )
68
+ self .disable_ads_button = QtWidgets .QPushButton ("Disable In-game Ads" )
65
69
self .disable_ads_button .clicked .connect (lambda : self .toggle_fflag ("Disable In-game Ads" , disable_ads_flags ))
66
70
self .basic_layout .addWidget (self .disable_ads_button )
67
71
68
- self .disable_remote_events_button = QtWidgets .QPushButton ("Toggle Disable Remote Events" )
72
+ self .disable_remote_events_button = QtWidgets .QPushButton ("Disable Remote Events" )
69
73
self .disable_remote_events_button .clicked .connect (lambda : self .toggle_fflag ("Disable Remote Events" , disable_remote_events_flags ))
70
74
self .basic_layout .addWidget (self .disable_remote_events_button )
71
75
72
76
self .max_zoom_label = QtWidgets .QLabel ("Set Max Zoom Distance:" )
73
77
self .basic_layout .addWidget (self .max_zoom_label )
74
78
75
79
self .max_zoom_input = QtWidgets .QSpinBox (self )
76
- self .max_zoom_input .setRange (10 , 9999 )
80
+ self .max_zoom_input .setRange (10 , 69420 )
77
81
self .basic_layout .addWidget (self .max_zoom_input )
78
82
79
83
self .set_zoom_button = QtWidgets .QPushButton ("Set Max Zoom Distance" )
@@ -112,6 +116,16 @@ def initUI(self):
112
116
self .log_advanced .setReadOnly (True )
113
117
self .advanced_layout .addWidget (self .log_advanced )
114
118
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:\n Email: gifxed@proton.me\n Discord: teemsploit\n Youtube: Teemsploit"
125
+ )
126
+ self .info_label .setAlignment (QtCore .Qt .AlignCenter )
127
+ self .info_layout .addWidget (self .info_label )
128
+
115
129
self .beta_warning = QtWidgets .QLabel ("This is a beta version. Report bugs on the GitHub repo." )
116
130
self .basic_layout .addWidget (self .beta_warning )
117
131
@@ -170,13 +184,15 @@ def load_json(self):
170
184
def toggle_fflag (self , flag_name , flag_data ):
171
185
data = self .load_json ()
172
186
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 ])
180
196
181
197
self .save_json (data )
182
198
0 commit comments