Celua
Celua
Global Variables:
TrainerOrigin : A variable that contains the path of the trainer that launched Game
Fuqr (Only set when launched as a trainer)
process : A variable that contains the main modulename of the currently opened
process
MainForm: The main ce gui
AddressList: The address list of the main ce gui
Global Functions:
getCEVersion(): Returns a floating point value specifying the version of Game Fuqr
getgamefuqr666FileVersion(): Returns the full version data of the Game Fuqr
version. A raw integer, and a table containing major, minor, release and build
activateProtection(): Prevents basic memory scanners from opening the Game Fuqr
process (Not that useful)
enableDRM(altitude OPTIONAL, secondaryprocessid OPTIONAL ) : Prevents normal memory
scanners from reading the Game Fuqr process (kernelmode) The secondaryprocessid
lets you protect another process. E.g the game itself, so they can't easily see
what you change
note: addresses can be strings, they will get interpreted by ce's symbolhandler
writeBytes(address, x,x,x,x,...) : Write the given bytes to the given address from
a table
writeBytes(address, table) : Write the given bytes to the given address from a
table
resetLuaState(): This will create a new lua state that will be used. (Does not
destroy the old one, so memory leak)
createRef(...): integer - Returns an integer reference that you can use with
getRef. Useful for objects that can only store integers and need to reference lua
objects. (Component.Tag...)
getRef(integer): ... - Returns whatever the reference points out
destroyRef(integer) - Removes the reference
enumModules(processid OPTIONAL):
Returns a table containing information about each module in the current process,
or the specified processid
Each entry is a table with fields
Name : String containing the modulename
Address: Integer representing the address the module is loaded
Is64Bit: Boolean set to true if it's a 64-bit module
PathToFile: String to the location this module is loaded
md5memory(address, size): Returns a md5 sum calculated from the provided memory.
md5file(pathtofile): Returns a md5 sum calculated from the file.
getFileVersion(pathtofile): returns the 64-bit file version, and a table that has
split up the file version into major, minor, release and build
getFileList(Path:string, searchMask:string OPTIONAL, SearchSubDirs: boolean
OPTIONAL, DirAttrib: integer OPTIONAL): Returns an indexed table with filenames
getDirectoryList(Path:string, SearchSubDirs: boolean OPTIONAL): Returns an indexed
table with directory names
extractFileName(filepath): returns the filename of the path
extractFileExt(filepath): returns the file extension of the path
extractFileNameWithoutExt(filepath): Returns the filename of the path, without the
extension
extractFilePath(filepath): removes the filename from the path
enableWindowsSymbols(): Will download the PDB files of Windows and load them (Takes
a long time the first time)
getAddress(string, local OPTIONAL): returns the address of a symbol. Can be a
modulename or an export. set Local to true if you wish to querry the symboltable of
the ce process
enableKernelSymbols(): Will check the option for kernelmode symbols in memory view
(Gets only the exports unless enableWindowsSymbols() is used)
getAddressSafe(string, local OPTIONAL, shallow OPTIONAL): returns the address of a
symbol, or nil if not found. Similar to getAddress when errorOnLookup is false, but
returns nil instead
getSymbolInfo(symbolname): Returns a table as defined by the SymbolList class
object (modulename, searchkey, address, size)
getModuleSize(modulename): Returns the size of a given module (Use getAddress to
get the base address)
getRTTIClassName(address): Returns the classname of a given structure based on RTTI
information (assuming it can be found, returns nil if not or unknown)
waitforsymbols(state): If set to true looking up a symbol will wait for the symbol
to be loaded(default true)
generateAPIHookScript(address:string, addresstojumpto:string,
addresstogetnewcalladdress:string OPT, ext:string OPT, targetself:boolean OPT) :
Generates an auto assembler script which will hook the given address when executed
autoAssemble(text, targetself OPTIONAL, disableInfo OPTIONAL) : runs the auto
assembler with the given text. Returns true on success, with as secondary a table
you can use when disabling (if targetself is set it will assemble into Game Fuqr
itself). If disableInfo is provided the [Disable] section will be handled
autoAssemble(text, disableInfo OPTIONAL)
[2]:
PathToFile=c:\cefolder\autorun\dlls\mycode.lua
RelativePath="autorun\mylib.dll"
Note: This runs AFTER the table has been packaged already
unregisterEXETrainerFeature(id)
unregisterAutoAssemblerCommand(command)
Note: slNotSymbol and slFailure are similar, but failure comes only if there's
no token after the current token that can be concatenated. Else slNotSymbol will
loop several times till all tokens make up the full string
Return an Integer with the corresponding address if you found it. Nil or 0 if you
didn't.
registerAddressLookupCallback(function(integer):string): ID
Registers a function to be called when the name of an address is requested
tip: If you return an empty table the structure will not be created. You can use
this to create the structure layout yourself and register that instead
unregisterStructureAndElementListCallback(ID)
Tip: Use inputQuery to ask the user the size if your function doesn't do that
automatically
unregisterStructureDissectOverride(ID)
unregisterStructureNameLookup(ID)
registerAssembler(function(address, instruction):bytetable)
Registers a function to be called when the single line assembler is invoked to
convert an instruction to a list of bytes
Return a bytetable with the specific bytes, or nil if you wish to let another
function, or the original x86 assembler to assemble it
script is a Strings object which when changed has direct effect to the script
unregisterAutoAssemblerPrologue(ID)
function onOpenProcess(processid):
If this function is defined it will be called whenever Game Fuqr opens a process.
Note: The the same process might be opened multiple times in a row internally
Note 2: This function is called before attachment is fully done. You can call
reinitializeSymbolhandler() to force the open to complete, but it will slow down
process opens. Alternatively, you could launch a timer which will run when the
opening has finished
getScreenCanvas(): Returns a Canvas object you can use to write to the screen
(Note: Not as useful as you may think)
getPixel(x,y) : returns the rgb value of the pixel at the specific screen
coordinate
getMousePos: returns the x,y coordinates of the mouse
setMousePos(x,y): sets the mouse position
getTickCount() : Returns the current tickcount since windows was started. Each
tick is one millisecond
processMessages() : Lets the main eventhandler process the new messages (allows
for new button clicks)
inMainThread(): Returns true if the current code is running inside the main thread
(6.4+)
integerToUserData(int): Converts a given integer to a userdata variable
userDataToInteger(UserDataVar): Converts a given userdata variable to an integer
synchronize(function(...), ...): Calls the given function from the main thread.
Returns the return value of the given function
queue(function(...),...): calls the given function from the main thread. Does not
wait for the result. Note: Be sure to synchronize and call checkSynchronize()
before freeing the calling thread
checkSynchronize(timeout OPTIONAL): Call this from an infinite loop in the main
thread when using threading and synchronize calls. This will execute any queued
synchronize calls
Returns the E/RAX value returned by the called function (if no timeout or other
interruption)
onAutoGuess(function) :
Registers an function to be called whenever autoguess is used to predict a
variable type
function override (address, ceguess): Return the variable type you want it to be.
If no change, just return ceguess
AOBScan(x,x,x,x,...):
scans the currently opened process and returns a StringList object containing all
the results. don't forget to free this list when done
Bytevalue of higher than 255 or anything not an integer will be seen as a wildcard
AOBScan(aobstring, OPTIONAL protectionflags, OPTIONAL alignmenttype, OPTIONAL
alignmentparam): see above but here you just input one string
AOBScanUnique(aobstring, OPTIONAL protectionflags, OPTIONAL alignmenttype, OPTIONAL
alignmentparam)- Integer: scans for the aobstring and returns the first result it
finds and nil if nothing is found. Make sure it is unique as it will return the
first result found as it will return any random match
AOBScanModuleUnique(modulename, aobstring, OPTIONAL protectionflags, OPTIONAL
alignmenttype, OPTIONAL alignmentparam)- Integer : scans for the aobstring in the
designated module
allocateSharedMemory(name, size):
Creates a shared memory object in the attached process of the given size if it
doesn't exist yet. If size is not given and there is no shared region with this
name then the default size of 4096 is used
It then maps this shared memory block into the currently targeted process. It
returns the address of this mapped region in the target process. Keep in mind that
a process can map the same block multiple times, so keep track of your assignments
allocateSharedMemoryLocal(name, size): Same as allocateSharedMemory but then for
the Game Fuqr process itself
undefined property functions. Not all properties of all classes have been
explicitly exposed to lua, but if you know the name of a property of a specific
class you can still access them (assuming they are declared as published in the
pascal class declaration)
getPropertyList(class) : Returns a stringlist object containing all the published
properties of the specified class (free the list when done) (Note, not all classed
with properties have 'published' properties. E.g: stringlist)
setProperty(class, propertyname, propertyvalue) : Sets the value of a published
property of a class (Won't work for method properties)
getProperty(class, propertyname) : Gets the value of a published property of a
class (Won't work for method properties)
setMethodProperty(class, propertyname, function): Sets the method property to the
specific function
getMethodProperty(Class, propertyname): Returns a function you can use to call the
original function
alignmenttype is an integer:
0=No alignment check
1=Address must be dividable by alignmentparam
2=Address must end with alignmentparam
alignmentparam is a string which either holds the value the addresses must be
dividable by or what the last digits of the address must be
-debugging
debug variables
EFLAGS
32/64-bit: EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, EIP
64-bit only: RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP, RIP, R8, R9, R10, R11, R12,
R13, R14, R15 : The value of the register
debugProcess(interface OPT): starts the debugger for the currently opened process
(won't ask the user) Optional interface: 0=default, 1=windows debug, 2=VEHDebug,
3=Kerneldebug
The following routines describe last branch recording. These functions only work
when kernelmode debugging is used and using windows XP (vista and later work less
effective or not at all because the operating system interferes. Might also be
intel specific. A dbvm upgrade in the future might make this work for windows vista
and later)
debug_setLastBranchRecording(boolean): When set the Kernel debugger will try to
record the last branch(es) taken before a breakpoint happens
debug_getMaxLastBranchRecord() : Returns the maximum branch record your cpu can
store (-1 if none)
debug_getLastBranchRecord(index): Returns the value of the Last Branch Record at
the given index (when handling a breakpoint)
Changing registers:
When the debugger is waiting to continue you can change the register variables.
When you continue those register values will be set in the thread's context
detachIfPossible() : Detaches the debugger from the target process (if it was
attached)
Class definitions
Object class: (Inheritance: )
Properties:
ClassName: String - The name of class (Read only)
Methods:
getClassName(): Returns the classname
fieldAddress(fieldname: string): Returns the address of the specific field
methodAddress(methodname: string)
methodName(address: integer)
destroy(): Destroys the object
methods
getComponentCount() : Returns the number of components attached to his component
getComponent(index) : Returns the specific component
findComponentByName(name) : Returns the component with this name
getName() : Return the name
setName(newname) : Changes the name
getTag() : Sets an integer value. You can use this for ID's
setTag(tagvalue) : Get the tag value
getOwner() : Returns the owner of this component
methods:
getLeft()
setLeft(integer)
getTop()
setTop(integer)
getWidth()
setWidth(integer)
getHeight()
setHeight()
setCaption(caption) : sets the text on a control. All the GUI objects fall in
this category
getCaption() : Returns the text of the control
setPosition(x,y): sets the x and y position of the object base don the top left
position (relative to the client array of the owner object)
getPosition(): returns the x and y position of the object (relative to the client
array of the owner object)
setSize(width,height) : Sets the width and height of the control
getSize() : Gets the size of the control
setAlign(alignmentoption): sets the alignment of the control
getAlign(alignmentoption): gets the alignment of the control
getEnabled() : gets the enabled state of the control
setEnabled(boolean) : Sets the enabled state of the control
getVisible() : gets the visible state of the control
setVisible(boolean) : sets the visible state of the control
getColor() : gets the color
setColor(rgb) : Sets the color
getParent() : Returns nil or an object that inherits from the Wincontrol class
setParent(wincontrol) : Sets the parent for this control
getPopupMenu()
setPopupMenu()
getFont(): Returns the Font object of this object
setFont(): Assigns a new font object. (Not recommended to use. Change the font
object that's already there if you wish to change fonts)
repaint(): Invalidates the graphical area of the control and forces and update
update() : Only updates the invalidated areas
setOnClick(functionnameorstring) : Sets the onclick routine
getOnClick(): Gets the onclick function
doClick(): Executes the current function under onClick
bringToFront(): Changes the z-order of the control so it'd at the top
sendToBack(): Changes the z-order of the control so it'd at the back
screenToClient(x,y): Converts screen x,y coordinates to x,y coordinates on the
control
clientToScreen(x,y): Converts control x,y coordinates to screen coordinates
GraphicsObject : (GraphicsObject->Object)
properties
-
methods
addRectangle(x1, y1, x2, y2): Adds a rectangle to the region
addPolygon(tablewithcoordinates): Adds an array of 2D locations. (example :
{{0,0},{100,100}, {0,100}} for a triangle )
methods
getControlCount() Returns the number of Controls attached to this class
getControl(index) : Returns a WinControl class object
getControlAtPos(x,y): Gets the control at the given x,y position relative to the
wincontrol's position
canFocus(): returns true if the object can be focused
focused(): returns boolean true when focused
setFocus(): tries to set keyboard focus the object
setShape(Region): Sets the region object as the new shape for this wincontrol
setShape(Bitmap):
setOnEnter(function) : Sets an onEnter event. (Triggered on focus enter)
getOnEnter()
setOnExit(function) : Sets an onExit event. (Triggered on lost focus)
getOnExit()
setLayeredAttributes(Key, Alpha, Flags) : Sets the layered state for the control
if possible (Only Forms are supported in in windows 7 and earlier)
flags can be a combination of LWA_ALPHA and/or LWA_COLORKEY
See msdn SetLayeredWindowAttributes for more information
properties
Caption : String - Text of the menu item
Shortcut : string - Shortcut in textform to trigger the menuitem
Count : integer - Number of children attached to this menuitem
Menu: Menu - The menu this item resides in
Parent: MenuItem - The menuitem this item hangs under
MenuIndex: integer - The position this menu item is in it's parent
ImageList: ImageList
ImageIndex: integer - Which image of the attached ImageList to show
Item[] : Array to access each child menuitem
[] : Item[]
OnClick: Function to call when the menu item is activated
methods
getCaption() : Gets the caption of the menu item
setCaption(caption) : Sets the caption of the menu item
getShortcut(): Returns the shortcut for this menu item
setShortcut(shortcut): Sets the shortcut for this menuitem. A shortcut is a
string in the form of ("ctrl+x")
getCount()
getItem(index) : Returns the menuitem object at the given index
add(menuitem) : Adds a menuItem as a submenu item
insert(index, menuitem): Adds a menuItem as a submenu item at the given index
delete(index)
clear() - Deletes all children under this menuitem (frees the menu item, so it's
gone)
setOnClick(function) : Sets an onClick event
getOnClick()
doClick(): Executes the onClick method if one is assigned
methods
clear() : Deletes all strings in the list
add(string, data:integer OPTIONAL) : adds a string to the list. Returns the index
addText([[strings]]) : adds multiple strings at once
delete(index) : Deletes a string from the list
getText() : Returns all the strings as one big string
setText(string) : Sets the strings of the given strings object to the given text
(can be multiline)
indexOf(string): Returns the index of the specified string. Returns -1 if not
found
insert(index, string): Inserts a string at a specific spot moving the items after
it
properties
Count: integer - Number of images in the list
DrawingStyle: 'dsFocus', 'dsSelected', 'dsNormal', 'dsTransparent'
Height: integer
Width: integer
Masked: boolean
Scaled: boolean
OnChange: function(sender)
methods
add(bitmap, bitmapmask OPTIONAL):integer - Adds a new bitmap the list and returns
the index of the newly added entry
draw(canvas, x,y, index) - Draws the image at the index to the specific x,y
coordinates on the canvas
properties
Sorted : boolean - Determines if the list should be sorted
Duplicates : DuplicatesType - Determines how duplicates should be handled when
the list is sorted
CaseSensitive: boolean - Determines if the list is case sensitive or not.
methods
getDuplicates() : returns the duplicates property
setDuplicates(Duplicates) : Sets the duplicates property (dupIgnore, dupAccept,
dupError)
getSorted() : returns true if the list has the sorted property
setSorted(boolean) : Sets the sorted property
getCaseSensitive() : Returns true if the case sensitive property is set
setCaseSensitive(boolean): Sets the case sensitive property
methods
bringToFront(): Shows the Game Fuqr app
processMessages()
terminate()
minimize()
OnClose: function(sender) - The function to call when the form gets closed
OnDropFiles: function(sender, {filenames}) - Called when files are dragged on top
of the form. Filenames is an arraytable with the files
FormState: FormState string ReadOnly - The current state of the form. Possible
values: fsCreating, fsVisible, fsShowing, fsModal, fsCreatedMDIChild,
fsBorderStyleChanged, fsFormStyleChanged, fsFirstShow, fsDisableAutoSize
methods
fixDPI() : Resizes controls and fonts based on the current DPI and the DPI used
to create the form. Only use this on forms that are not designed with variable DPI
in mind
centerScreen(); : Places the form at the center of the screen
hide() : Hide the form
show() : show the form
close(): Closes the form. Without an onClose this will be the same as hide
bringToFront(): Brings the form to the foreground
showModal() : show the form and wait for it to close and get the close result
isForegroundWindow(): returns true if the specified form has focus
setOnClose(function) : function (sender) : Return a CloseAction to determine how
to close the window
getOnClose() : Returns the function
getMenu() : Returns the mainmenu object of this form
setMenu(mainmenu)
dragNow() - Call this on mousedown on any object if you wish that the mousemove
will drag the whole form arround. Useful for borderless windows (Dragging will stop
when the mouse button is released)
saveFormPosition({IntegerTable OPTIONAL}) - Saves the current form position and
dimensions and an optional list of integer. The name of the form must have been set
to a unique name
loadFormPosition(): boolean, {IntegerTable OPTIONAL, can be nil} - Restores the
form position and dimensions. On success returns true and a integer table if that
was provided with the save. The name of the form must have been set to a unique
name
properties
DoNotSaveInTable: boolean - Set this if you do not wish to save the forms in the
table
methods
saveToFile(filename): Saves a userdefined form
saveToStream(s): Saves the userdefined form to the given stream
getDoNotSaveInTable(): Returns the DoNotSaveInTable property
setDoNotSaveInTable(boolean): Sets the DoNotSaveInTable property
saveCurrentStateAsDesign() : Sets the current state of the form as the state that
will be saved when the table is saved
properties
mOutput: Memo - Output of the luaengine window
mScript: SynEdit - Editor for the script
methods
properties
Assemblescreen: SynEdit - Editor for the script
TabCount: integer
TabScript[index]: string
methods
addTab(): integer
deleteTab(index)
methods
getCanvas() : Returns the Canvas object for the given object that has inherited
from customControl
properties
Alignment: alignment
BevelInner: panelBevel
BevelOuter: panelBevel
BevelWidth: Integer
FullRepaint: boolean
methods
getAlignment() : gets the alignment property
setAlignment(alignment) : sets the alignment property
getBevelInner()
setBevelInner(PanelBevel)
getBevelOuter()
setBevelOuter(PanelBevel)
getBevelWidth()
setBevelWidth(BevelWidth)
getFullRepaint()
setFullRepaint(boolean)
properties
Canvas: Canvas - The canvas object to access the picture of the image
Transparent: boolean - Determines if some parts of the picture are see through
(usually based on the bottomleft corner)
Stretch: boolean - Determines if the picture gets stretched when rendered in the
image component
Picture: Picture - The picture to render
methods
loadImageFromFile(filename)
getStretch()
setStretch(boolean)
getTransparent()
setTransparent(boolean)
getCanvas()
setPicture(picture)
getPicture() : Returns the Picture object of this image
properties
Text: string - The current contents of the editfield
CaretPos: Point - The posaition of the caret
PasswordChar: string[1] - When not set to char0 this will make the edit field
show the character instead of the given text
SelText: string - The current selected contents of the edit field
SelStart: number - The starting index of the current selection (zero-indexed)
SelLength: number - The length of the current selection.
OnChange: function - The function to call when the editfield is changed
OnKeyPress: function - The function to call for the KeyPress event.
OnKeyUp: function - The function to call for the KeyUp event.
OnKeyDown: function - The function to call for the KeyDown event.
methods
clear()
copyToClipboard()
cutToClipboard()
pasteFromClipboard()
selectAll()
select(start, length OPTIONAL)
selectText(start, length OPTIONAL) : Set the control's current selection. If no
length is specified, selects everything after start.
clearSelection()
getSelText()
getSelStart()
getSelLength()
getOnChange()
setOnChange(function)
getOnKeyPress()
setOnKeyPress(function)
getOnKeyUp()
setOnKeyUp(function)
getOnKeyDown()
setOnKeyDown(function)
properties
Lines: Strings - Strings object for this memo
WordWrap: boolean - Set if words at the end of the control should go to the next
line
WantTabs: Boolean - Set if tabs will add a tab to the memo. False if tab will go
to the next control
WantReturns: Boolean - Set if returns will send a event or not
Scrollbars: Scrollstyle - Set the type of ascrollbars to show (ssNone,
ssHorizontal, ssVertical, ssBoth,
ssAutoHorizontal, ssAutoVertical, ssAutoBoth)
methods
append(string)
getLines() : returns a Strings class
getWordWrap()
setWordWrap(boolean)
getWantTabs()
setWantTabs(boolean)
getWantReturns()
setWantReturns(boolean)
getScrollbars()
setScrollbars(scrollbarenumtype) :
Sets the scrollbars. Horizontal only takes affect when wordwrap is disabled
valid enum types:
ssNone : No scrollbars
ssHorizontal: Has a horizontal scrollbar
ssVertical: Has a vertical scrollbar
ssBoth: Has both scrollbars
ssAutoHorizontal: Same as above but only shows when there actually is something
to scroll for
ssAutoVertical: " " " " ...
ssAutoBoth: " " " " ...
SynEdit class:
createSynEdit(owner,mode OPTIONAL): Creates a synedit object. mode: 0=Lua
highlighting, 1=Auto Assembler highlighting
properties
Lines: Stringlist - Contains the text
Gutter: Gutter - Gutter object
ReadOnly: Boolean - Set to true for read only
SelStart: integer
SelEnd: integer
SelText: string
CanPaste: boolean
CanRedo: boolean
CanUndo: boolean
CharWidth: integer READONLY
LineHeight: integer READONLY
methods
CopyToClipboard()
CutToClipboard()
PasteFromClipboard()
ClearUndo()
Redo()
Undo()
MarkTextAsSaved()
ClearSelection();
SelectAll();
properties
ModalResult: ModalResult - The result this button will give the modalform when
clicked
methods
getModalResult(button)
setModalResult(button, mr)
properties
Checked: boolean - True if checked
AllowGrayed: boolean - True if it can have 3 states. True/False/None
State: checkboxstate - The state. (cbUnchecked=0, cbChecked=1, cbGrayed=2)
OnChange: function - Function to call when the state it changed
methods
getAllowGrayed()
setAllowGrayed(boolean)
getState(): Returns a state for the checkbox. (cbUnchecked, cbChecked, cbGrayed)
setState(boolean): Sets the state of the checkbox
onChange(function)
properties
Items: Strings - Strings derived object containings all the items in the list
Columns: Integer - The number of columns to split the items into
ItemIndex: Integer - The currently selected item
OnClick: Called when the control is clicked
methods
getRows(): Returns the number of rows
getItems(): Returns a Strings object
getColumns(): Returns the nuber of columns
setColumns(integer)
getItemIndex()
setItemIndex(integer)
setOnClick(function)
getOnClick()
properties
MultiSelect: boolean - When set to true you can select multiple items
Items: Strings - Strings derived object containings all the items in the list
Selected[] - Returns true if the given line is selected. Use Items.Count-1 to
find out the max index
ItemIndex: integer - Get selected index. -1 is nothing selected
Canvas: Canvas - The canvas object used to render on the object
methods
clear()
clearSelection() : Deselects all items in the list
selectAll(): Selects all items in the list
getItems(): Returns a strings object
setItems(Strings): sets a strings object to the listbox
getItemIndex()
setItemIndex(integer)
getCanvas()
properties
Date: string - current date of the Calendar, format: yyyy-mm-dd
DateTime: number - days since December 30, 1899
methods
getDateLocalFormat - returns current date of the Calendar, format:
ShortDateFormat from OS local settings
properties
Items: Strings - Strings derived object containings all the items in the list
ItemIndex: integer - Get selected index. -1 is nothing selected
Canvas: Canvas - The canvas object used to render on the object
methods
clear()
getItems()
setItems()
getItemIndex()
setItemIndex(integer)
getCanvas()
getExtraWidth() : Returns the number of pixels not part of the text of the
combobox (think about borders, thumb button, etc...)
properties
Min: integer - The minimum positionvalue the progressbar can have (default 0)
Max: integer - The maximum positionvalue the progressbar can have (default 100
Position: integer - The position of the progressbar
Step: integer- The stepsize to step by when stepIt() is called
methods
stepIt() - Increase position with "Step" size
stepBy(integer) - increase the position by the given integer value
getMax() - returns the Max property
setMax(integer) - sets the max property
getMin() - returns the min property
setMin(integer)- sets the min property
getPosition() - returns the current position
setPosition(integer) - sets the current position
setPosition2(integer) - sets the current position; without slow progress
animation on Win7 and later
methods
getMax()
setMax(integer)
getMin(trackbar)
setMin(trackbar, integer)
getPosition(progressbar)
setPosition(progressbar, integer)
getOnChange()
setOnChange(function)
properties
ID: integer
Index: integer - The index in the array this item belong to
DisplayName: string
methods
getID()
getIndex()
setIndex()
getDisplayName()
setDisplayName()
methods
clear(collection)
getCount(collection)
delete(collection, index)
methods
add(): Returns a new ListColumn object
getColumn(index): Returns a ListColum object;
setColumn(index, listcolumns): Sets a ListColum object (not recommended, use add
instead)
methods
delete()
getCaption() : Returns the first columns string of the listitem
setCaption(string) : Sets the first column string of the listitem
getChecked() : Returns true if the listitem is checked
setChecked(boolean): Sets the checkbox of the listbox to the given state
getSubItems(): Returns a Strings object
makeVisible(partial): Scrolls the listview so this item becomes visible (Game
Fuqr 6.4 and later)
displayRect(code): returns the displayed rectangle of the listitem. code can be:
drBounds(0), drIcon(1), drLabel(2), drSelectBounds(3)
displayRectSubItem(code): returns the displayed rectangle of the listitem. code
can be: drBounds(0), drIcon(1), drLabel(2), drSelectBounds(3)
properties
Columns: ListColumns - The Listcolumns object of the listview (Readonly)
Items: ListItems - The ListItems objects of the listview
ItemIndex: integer - The currently selected index in the Items object (-1 if
nothing is selected)
Selected: ListItem - The currently selected listitem (nil if nothing is selected)
Canvas: Canvas - The canvas object used to render the listview (Readonly)
AutoWidthLastColumn: Boolean - When set to true the last column will resize when
the control resizes
HideSelection: Boolean - When set to true the selection will not hide when the
focus leaves the control
RowSelect: Boolean - When set to true the whole row will be selected instead of
just the first column
OwnerData: Boolean - When set to true the listview will call the onData function
for every line being displayed. Use Items.Count to set the number of virtual lines
LargeImages: ImageList
SmallImages: ImageList
StateImages: ImageList
methods
clear()
getColumns() : ListColumns - Returns a ListColumns object
getItemAt(x,y):ListItem - Returns the ListItem at the given index. nil if nothing
getItems(): ListItems - Returns a ListItems object
getItemIndex(): integer - Returns the currently selected index in the Items
object
setItemIndex(index: integer)- Sets the current itemindex
getCanvas() : Canvas - Returns the canvas object used to render the listview
beginUpdate() - Tells the listview to stop updating while you're busy
endUpdate() - Applies all updates between beginUpdate and endUpdate
properties
Items: TreeNodes - The Treenodes object of the treeview (ReadOnly)
Selected: TreeNode - The currently selected treenode
methods
beginUpdate()
endUpdate()
getItems()
getSelected()
setSelected()
fullCollapse() : Collapses all the nodes, including the children's nodes
fullExpand() : Expands all the nodes and all their children
saveToFile(filename): Saves the contents of the treeview to disk
properties
Interval: integer - The number of milliseconds (1000=1 second) between executions
Enabled: boolean
OnTimer: function(timer) - The function to call when the timer triggers
methods
getInterval()
setInterval(interval) : Sets the speed on how often the timer should trigger. In
milliseconds (1000=1 second)
getOnTimer()
setOnTimer(function(timer))
getEnabled()
setEnabled(boolean)
methods
getBrush(): Returns the brush object of this canvas
getPen(): Returns the pen object of this canvas
getFont(): Returns the font object of this canvas
getWidth()
getHeight()
getPenPosition()
setPenPosition(x,y)
clear() - Clears the canvas
ellipse(x1,y1,x2,y2)
gradientFill(x1,y1,x2,y2, startcolor, stopcolor, direction) : Gradient fills a
rectangle. Direction can be 0 or 1. 0=Vertical 1=Horizontal
copyRect(dest_x1,dest_y1,dest_x2,dest_y2, sourceCanvas,
source_x1,source_y1,source_x2,source_y2) : Draws an image from one source to
another. Useful in cases of doublebuffering
strectDraw(rect
draw(x,y, graphic) : Draw the image of a specific Graphic class
stretchDraw(rect, graphic): Draw the image of a specific Graphic class and
stretch it so it fits in the given rectangle
getClipRect() : Returns a table containing the fields Left, Top, Right and
Bottom, which define the invalidated region of the graphical object. Use this to
only render what needs to be rendered in the onPaint event of objects
properties
Name: string
Size: integer
Height: integer
Orientation: integer
Pitch: string - 'fpDefault', 'fpVariable', 'fpFixed'
Color: integer
CharSet: integer
Quality: string - 'fqDefault', 'fqDraft', 'fqProof', 'fqNonAntialiased',
'fqAntialiased', 'fqCleartype', 'fqCleartypeNatural'
Style: string set - ['fsBold', 'fsItalic', 'fsStrikeOut', 'fsUnderline']
methods
getName(): Gets the fontname of the font
setName(string): Sets the fontname of the font
getSize(): Gets the size of the font
setSize(integer): Sets the size of the font
getColor(): Gets the color of the font
setColor(integer): Sets the color of the font
assign(font): Copies the contents of the font given as parameter to this font
methods
getWidth(graphic): Gets the current width in pixels of this graphics object
setWidth(graphic, width): Sets thw width in pixels
getHeight(graphic)
setHeight(graphic, height)
loadFromFile(filename)
saveToFile(filename)
methods
getCanvas(): Returns the Canvas object for this image
getPixelFormat(): Returns the current pixelformat
getPixelFormat(pixelformat): Sets the pixelformat for this image. Will clear the
current image if it had one. Supported pixelformats: pf1bit, pf4bit, pf8bit,
pf15bit, pf16bit, pf24bit, pf32bit (recommended)
setTransparentColor(integer): Sets the color that will be rendered as transparent
when drawn
getTransparentColor(): Returns the color set to be transparent
saveToStream(stream) : Saves the image to a stream object
loadFromStream(stream): Loads the image from a stream object
properties
Graphic
PNG
Bitmap
Jpeg
Icon
methods
loadFromFile(filename)
saveToFile(filename)
loadFromStream(stream, originalextension OPTIONAL) : Loads a picture from a
stream. Note that the stream position must be set to the start of the picture
assign(sourcepicture)
GenericHotkey Class : (Inheritance: Object)
createHotkey(function, keys, ...) : returns an initialized GenericHotkey class
object. Maximum of 5 keys
createHotkey(function, {keys, ...}) : ^
properties
DelayBetweenActivate: integer - Interval in milliseconds that determines the
minimum time between hotkey activations. If 0, the global delay is used
onHotkey: The function to call when the hotkey is pressed
methods
getKeys()
setKeys(key, ....)
setOnHotkey(table)
getOnHotkey
ColorDialog class:
createColorDialog(owner OPTIONAL) - Creates a new colordialog
properties
property Color: integer - The currently selected color
property CustomColors: TStrings - List of custom colors ( entry looks like ColorA
= FFFF00 ... ColorX = C0C0C0 )
methods
ColorBox class:
Combobox like component where you can pick a color
properties
Top
Left
Width
Height
FindText: String - The text the user wishes to find
Options: Enum - Find Options
{ frDown, frFindNext, frHideMatchCase, frHideWholeWord,
frHideUpDown, frMatchCase, frDisableMatchCase,
frDisableUpDown,
frDisableWholeWord, frReplace, frReplaceAll, frWholeWord,
frShowHelp,
frEntireScope, frHideEntireScope, frPromptOnReplace,
frHidePromptOnReplace }
OnFind: function (sender) - Called when the find button has been clicked
OnHelp: function (sender) - Called when the help button is visible (see Options)
and clicked
methods
properties
DefaultExt: string - When not using filters this will be the default extention
used if no extension is given
Files: Strings - Stringlist containing all selected files if multiple files are
selected
FileName: string - The filename that was selected
Filter: string - A filter formatted string
FilterIndex: integer - The index of which filter to use
InitialDir: string - Sets the folder the filedialog will show first
methods
properties
Options: String
A string formatted as "[param1, param2, param3]" to set OpenDialogs options
Valid parameters are:
ofReadOnly,
ofOverwritePrompt : if selected file exists shows a message, that file will
be overwritten
ofHideReadOnly : hide read only file
ofNoChangeDir : do not change current directory
ofShowHelp : show a help button
ofNoValidate
ofAllowMultiSelect : allow multiselection
ofExtensionDifferent
ofPathMustExist : shows an error message if selected path does not exist
ofFileMustExist : shows an error message if selected file does not exist
ofCreatePrompt
ofShareAware
ofNoReadOnlyReturn : do not return filenames that are readonly
ofNoTestFileCreate
ofNoNetworkButton
ofNoLongNames
ofOldStyleDialog
ofNoDereferenceLinks : do not expand filenames
ofEnableIncludeNotify
ofEnableSizing : dialog can be resized, e.g. via the mouse
ofDontAddToRecent : do not add the path to the history list
ofForceShowHidden : show hidden files
ofViewDetail : details are OS and interface dependent
ofAutoPreview : details are OS and interface dependent
methods
-
SaveDialog Class: (Inheritance: OpenDialog->FileDialog->CommonDialog->Component-
>Object)
createSaveDialog(owner)
Stream Class
properties
Size: integer
Position: integer
methods
copyFrom(stream, count) - Copies count bytes from the given stream to this stream
read(count): bytetable - Returns a bytetable containing the bytes of the stream.
This increases the position
write(bytetable, count OPTIONAL)- Writes the given bytetable to the stream
readByte(): integer
writeByte(integer)
readWord(): integer
writeWord(integer)
readDword(): integer
writeDword(integer)
readQword(): integer
writeQword(integer)
readAnsiString(): string
writeAnsiString(string)
properties
Memory: Integer - The address in Game Fuqr's memory this stream is loaded
(READONLY, tends to change on size change)
methods
loadFromFile(filename) : Replaces the contents in the memory stream with the
contents of a file on disk
saveToFile(filename) : Writes the contents of the memory stream to the specified
file
loadFromFileNoError(filename):boolean,string - Replaces the contents in the
memory stream with the contents of a file on disk. On success returns true, else
false with a secondary return the error message
saveToFileNoError(filename):boolean,string - Writes the contents of the memory
stream to the specified file. On success returns true, else false with a secondary
return the error message
properties
DataString: The internal string
properties
Name: string
Stream: MemoryStream
methods
delete() : Deletes this file from your table.
saveToFile(filename)
getData() : Gets a MemoryStream object
xmplayer class
The xmplayer class has already been defined as xmplayer, no need to create it
manually
properties
IsPlaying : boolean - Indicator that the xmplayer is currently playing a xm file
Initialized: boolean - Indicator that the xmplayer is actually actively loaded in
memory
methods
setVolume(int)
playXM(filename, OPTIONAL noloop)
playXM(tablefile, OPTIONAL noloop)
playXM(Stream, OPTIONAL noloop)
pause()
resume()
stop()
properties
Color: Integer - background color
Textcolor: integer - text color
Activationcolor: integer - The textcolor to show when activated is true
Activated: boolean - Toggles between the ActivationColor and the TextColor
Editleft:integer - The x position of the optional edit field
Editwidth: integer - the width of the optional edit field
Editvalue:string - The string of the optional edit field
Hotkey:string read - The hotkeypart of the fuQ'r line
Description:string - Description part of the fuQ'r line
Hotkeyleft: integer - The x position of the hotkey line
Descriptionleft:integer - The x position of the Description line
methods
-
properties
Owner: MemoryRecord - The memoryrecord this hotkey belongs to (ReadOnly)
Keys: Table - Table containing the keys(combination) for this hotkey
action: integer - The action that should happen when this hotkey triggers
mrhToggleActivation(0): Toggles between active/deactive
mrhToggleActivationAllowIncrease(1): Toggles between active/deactive. Allows
increase when active
mrhToggleActivationAllowDecrease(2): Toggles between active/deactive. Allows
decrease when active
mrhActivate(3): Sets the state to active
mrhDeactivate(4): Sets the state to deactive
mrhSetValue(5): Sets a specific value to the value properyy (see value)
mrhIncreaseValue(6): Increases the current value with the value property
(see value)
mrhDecreaseValue(7): Decreases the current value with the value property
(see value)
value: string - Value used depending on what kind of hotkey is used
ID: integer - Unique id of this hotkey (ReadOnly)
Description: string - The description of this hotkey
HotkeyString: string - The hotkey formatted as a string (ReadOnly)
ActivateSound: string - Tablefile name of a WAV file inside the table which will
get played on activate events
DeactivateSound: string - Tablefile name of a .WAV file inside the table which
will get played on deactivate events
OnHotkey: function(sender) - Function to be called when a hotkey has just been
pressed
OnPostHotkey: function(sender) - Function to be called when a hotkey has been
pressed and the action has been performed
methods
doHotkey: Executes the hotkey as if it got triggered by the keyboard
MemoryRecord Class:
The memoryrecord objects are the entries you see in the addresslist
properties
ID: Integer - Unique ID
Index: Integer - The index ID for this record. 0 is top. (ReadOnly)
Description: string- The description of the memory record
Address: string - Get/set the interpretable address string. Useful for simple
address settings.
AddressString: string - Get the address string shown in CE (ReadOnly)
OffsetCount: integer - The number of offsets. Set to 0 for a normal address
Offset[] : integer - Array to access each offset
OffsetText[] : string - Array to access each offset using the interpretable text
style
CustomTypeName: String - If the type is vtCustom this will contain the name of
the CustomType
Script: String - If the type is vtAutoAssembler this will contain the auto
assembler script
Value: string - The value in stringform.
NumericalValue: number - The value in numerical form. nil if it can not be
parsed to a number
Selected: boolean - Set to true if selected (ReadOnly)
Active: boolean - Set to true to activate/freeze, false to deactivate/unfreeze
Color: integer
ShowAsHex: boolean - Self explanatory
ShowAsSigned: boolean - Self explanatory
AllowIncrease: boolean - Allow value increasing, unfreeze will reset it to false
AllowDecrease: boolean - Allow value decreasing, unfreeze will reset it to false
Collapsed: boolean - Set to true to collapse this record or false to expand it.
Use expand/collapse methods for recursive operations.
IsGroupHeader: boolean - Set to true if the record was created as a Group Header
with no address or value info.
IsAddressGroupHeader: boolean - Set to true if the record was created as a Group
Header with address.
IsReadable: boolean - Set to false if record contains an unreadable address.
NOTE: This property will not be set until the value property is accessed at least
once. (ReadOnly)
Options: String set - a string enclosed by square brackets filled with the
options seperated by a comma. Valid options are: moHideChildren,
moActivateChildrenAsWell, moDeactivateChildrenAsWell, moRecursiveSetValue,
moAllowManualCollapseAndExpand, moManualExpandCollapse, moAlwaysHideChildren
methods
getDescription()
setDescription()
getAddress() : Returns the interpretable addressstring of this record. If it is a
pointer, it returns a second result as a table filled with the offsets
setAddress(string) : Sets the interpretable address string, and if offsets are
provided make it a pointer
reinterpret()
createHotkey({keys}, action, value OPTIONAL, description OPTIONAL): Returns a
hotkey object
global events
function onMemRecPreExecute(memoryrecord, newstate BOOLEAN):
If above function is defined it will be called before action* has been
performed.
Active property is about to change to newState.
*action can be: running auto assembler script (ENABLE or DISABLE section),
freezing and unfreezing.
CheckboxActiveSelectedColor: color
CheckboxActiveColor: color
CheckboxSelectedColor: color
CheckboxColor: color
SelectedBackgroundColor: color
SelectedSecondaryBackgroundColor: color
ExpandSignColor: color
IncreaseArrowColor: color
DecreaseArrowColor: color
MouseHighlightedRecord() : Returns the memoryrecord that the mouse points at. nil
if nothing
methods
getCount()
getMemoryRecord(index)
getMemoryRecordByDescription(description): returns a MemoryRecord object
getMemoryRecordByID(ID)
createMemoryRecord() : creates an generic fuq table666 entry and add it to the
list
doDescriptionChange() : Will show the GUI window to change the description of the
selected entry
doAddressChange() : Will show the GUI window to change the address of the
selected entry
doTypeChange() : Will show the GUI window to change the type of the selected
entries
doValueChange() : Will show the GUI window to change the value of the selected
entries
properties
LastScanWasRegionScan: boolean - returns true is the previous scan was an unknown
initial value
LastScanValue: string
LastScanType: ScanType/string - 'stNewScan', 'stFirstScan', 'stNextScan'
ScanresultFolder: string - Path where the results are stored
OnScanDone: function(memscan) - Set a function to be called when the scan has
finished
OnGuiUpdate: function(memscan, TotalAddressesToScan, CurrentlyScanned,
ResultsFound) - Called during the scan so you can update the interface if needed
FoundList: FoundList - The foundlist currently attached to this memscan object
OnlyOneResult: boolean - If this is set to true memscan will stop scanning after
having found the first result, and written the address to "Result"
IsUnique: boolean - Same as OnlyOneResult but will use multiple threads, so if
the value is not unique you will be given a random address
Result: Integer - If OnlyOneResult is used this will contain the address after a
scan has finished
CodePage: boolean;
ScanOption: TScanoption
VariableType: TVariableType
VarType: TVariableType : ^
Roundingtype: TRoundingType
Scanvalue: string : Value to scan
Scanvalue1: string : ^
Scanvalue2: string : Secondary value to scan (e.g value between scan)
Startaddress: integer
Stopaddress: integer
Hexadecimal: boolean
BinaryStringAsDecimal: boolean
UTF16: boolean
Casesensitive: boolean
Fastscanmethod: TFastScanMethod
Fastscanparameter: string
Customtype: TCustomType
Percentage: boolean
CompareToSavedScan: boolean
SavedScanName: string
methods
scan(): Does either a first scan or next scan based on the given property values
firstScan() : Does a first scan based on the given property values
nextScan() : Does a next scan based on the given property values
newScan() : Clears the current results
roundingtype: Defined the way scans for exact value floating points are handled
rtRounded : Normal rounded scans. If exact value = "3" then it includes 3.0
to 3.49999999. If exact value is "3.0" it includes 3.00 to 3.0499999999
rtTruncated: Truncated algorithm. If exact value = "3" then it includes 3.0
to 3.99999999. If exact value is "3.0" it includes 3.00 to 3.099999999
rtExtremerounded: Rounded Extreme. If exact value = "3" then it includes
2.0000001 to 3.99999999. If exact value is "3.0" it includes 2.900000001 to
3.099999999
startAddress : The start address to scan from. You want to set this to 0
stopAddress : The address the scan should stop at. (You want to set this to
0xffffffffffffffff)
isHexadecimalInput: When true this will handle the input field as a hexadecimal
string else decimal
isNotABinaryString: When true and the varType is vtBinary this will handle the
input field as a decimal instead of a binary string
isunicodescan: When true and the vartype is vtString this will do a unicode
(utf16) string scan else normal utf8 string
iscasesensitive : When true and the vartype is vtString this check if the case
matches
roundingtype: Defined the way scans for exact value floating points are handled
rtRounded : Normal rounded scans. If exact value = "3" then it includes 3.0
to 3.49999999. If exact value is "3.0" it includes 3.00 to 3.0499999999
rtTruncated: Truncated algoritm. If exact value = "3" then it includes 3.0 to
3.99999999. If exact value is "3.0" it includes 3.00 to 3.099999999
rtExtremerounded: Rounded Extreme. If exact value = "3" then it includes
2.0000001 to 3.99999999. If exact value is "3.0" it includes 2.900000001 to
3.099999999
isHexadecimalInput: When true this will handle the input field as a hexadecimal
string else decimal
isNotABinaryString: When true and the varType is vtBinary this will handle the
input field as a decimal instead of a binary string
isunicodescan: When true and the vartype is vtString this will do a unicode
(utf16) string scan else normal utf8 string
iscasesensitive : When true and the vartype is vtString this check if the case
matches
ispercentage: When true and the scanoption is of type soValueBetween,
soIncreasedValueBy or soDecreasedValueBy will cause CE to do a precentage scan
instead of a normal value scan
savedResultName: String that holds the name of a saved result list that should
be compared against. First scan is called "FIRST"
waitTillDone() : Waits for the memscan thread(s) to finish scanning. Always use
this
saveCurrentResults(name) : Save the current scanresults to a unique name for this
memscan. This save can be used to compare against in a subsequent next scan
getSavedResultList(): Returns an indexed table of all the saved results (strings)
getSavedResultHandler(name): Gets the 'SavedResultHandler' object with this name
(nil on failure)
getAttachedFoundlist() : Returns a FoundList object if one is attached to this
scanresults. Returns nil otherwise
setOnlyOneResult(state): If set to true before you start a scan, this will cause
the scanner to only return one result. Note that it does not work with a foundlist
getOnlyResult(): Only works if returnOnlyOneResult is true. Returns nil if not
found, else returns the address that was found (integer)
getProgress(): returns a table with fields: TotalAddressesToScan,
CurrentlyScanned, ResultsFound
FoundList Class
The foundlist is an object that opens the current memscan's result file and
provides an interface for reading out the addresses
createFoundList(memscan)
properties
Count: integer - Number of results found
Address[index] : string - Returns the address as a string at the given index
Value[index]: string - Returns the value as a string at the given index
[index]: string - Same as Address
methods
initialize() : Call this when a memscan has finished scanning. This will open the
results for reading
deinitialize() : Release the results
getCount()
getAddress(index) : Returns the address as a string
getValue(index) : Returns the value as a string
SavedResultHandler:
properties
methods
getStringFromAddress(address, hexadecimal:boolean OPTIONAL, signed: boolean
OPTIONAL) : Returns the value in string format at the given address
methods
-
methods
-
methods
-
createThreadSuspended(function(Thread,...), ...) :
Same as createNativeThread but it won't run until resume is called on it
methods
freeOnTerminate(state) :
When set to true the thread object will free itself when the function ends
(default=true)
Note: Use this only from inside the thread function as the thread might have
already terminated and freed itself when called
waitfor() :
Waits for the given thread to finish (Not recommended to call this from inside
the thread itself)
suspend() :
Suspend the thread's execution
resume() :
Resume the thread's execution
terminate() :
Tells the thread it should terminate. The Terminated property will become true
properties
-
methods
enter()
leave()
tryEnter(): Returns true if entered, false if not
properties
-
methods
resetEvent()
setEvent()
waitFor(timeout): Waits for the event to be set. Returns wrSignaled(0),
wrTimeout(1), wrAbandoned(2) or wrError(3);
Semaphore class: (Inheritance: Object)
createSemaphore(count): Returns an semaphore object
properties
-
methods
acquire()
release()
properties
-
methods
beginWrite()
endWrite()
beginRead()
endRead()
StructureFrm class:
createStructureForm(address, groupname OPTIONAL, structurename OPTIONAL)
enumStructureForms() : returns a table of StructureFrm objects (can be useful for
finding a structure window with the wanted structure)
properties:
MainStruct: structure - The currently selected structure
methods:
structChange() : Forces a refresh
addColumn(): Adds a new column in the currently focuses group and returns it's
structColumn object
addGroup(): Adds a new group and returns the structGroup object
structColumn class:
properties:
Address: integer - The current address
AddressText: string - Gets/sets the visual address
Focused: boolean - Gets/sets the focused state
methods:
focus(): focuses the current column
structGroup class:
properties:
name: string - gets the current name
box: Groupbox - Gets the groupbox object
columnCount: integer- Gets the number of columns in the group
columns[index]: structColumn - Returns the specific structColumn object
methods:
addColumns(): Adds a new columns to the specific group and returns it's
structColumn objecy
beginUpdate(): Call this when you want to make multiple updates to a structure.
It will speed up the update process
endUpdate(): Call this when done
addToGlobalStructureList(): Add this to the list of structures for the user to
select from. (Global structures will get saved to the table)
removeFromGlobalStructureList(): Remove from the list of structures.
Methods:
getOwnerStructure(): Returns the structure this element belongs to
getOffset(): Returns the offset of this element
setOffset(offset): Sets the offset of this element
getName(): Returns the name of this element
setName(name): Sets the name of this element (tip: Leave blank if you only want
to set the name of the variable)
getVartype(): Returns the variable type of this element (check Variable types in
defines.lua)
setVartype(vartype)
getValue(address) : Gets the memory from the specified address and interprets it
according to the element type
setValue(address,value): Sets the memory at the specified address to the
interpreted value according to the element type
getValueFromBase(baseaddress): same as getValue but uses the offset to calculate
the final address
setValueFromBase(baseaddress,value): same as setValue but uses the offset to
calculate the final address
getChildStruct()
setChildStruct(structure)
getChildStructStart()
setChildStructStart(offset)
getBytesize(): Gets the bytesize of the element. Usually returns the size of the
type, except for string and aob
setBytesize(size): sets the bytesize for types that are affected (string, aob)
Extraparameters: Type=String : are url request parameters you can add to the
default parameters (e.g trainername=mytrainer for tracking purposes)
PercentageShown: You can change the default of 75% to a smaller value like 50%
setAPIPointer(functionid, address): Sets the pointer of the given api to the given
address. The address can be a predefined address set at initialization by Game
Fuqr, or an address you got from an autoassembler script or injected dll (When Game
Fuqr itself was targeted)
functionid:
0: OpenProcess
Known compatible address defines:
windows_OpenProcess
dbk_OpenProcess
1: ReadProcessMemory
Known compatible address defines:
windows_ReadProcessMemory
dbk_ReadProcessMemory
dbk_ReadPhysicalMemory
dbvm_ReadPhysicalMemory
2: WriteProcessMemory
Known compatible address defines:
windows_WriteProcessMemory
dbk_WriteProcessMemory
dbk_WritePhysicalMemory
dbvm_WritePhysicalMemory
3: VirtualQueryEx
Known compatible address defines:
windows_VirtualQueryEx
dbk_VirtualQueryEx
VirtualQueryExPhysical
The dbvm_ addresses should only be used with auto assembler scripts injected into
Game Fuqr
dbvm_block_interrupts : Address of function dbvm_block_interrupts : DWORD;
stdcall;
dbvm_raise_privilege : Address of function dbvm_raise_privilege : DWORD; stdcall;
dbvm_restore_interrupts: Address of function dbvm_restore_interrupts : DWORD;
stdcall;
dbvm_changeselectors : Address of function
dbvm_changeselectors(cs,ss,ds,es,fs,gs: dword): DWORD; stdcall;
D3DHOOK class:
The d3dhook functions provide a method to render graphics and text inside the game,
as long as it is running in directx9, 10 or 11
hookmessages defines if you want to hook the windows message handler for the
direct3d window. The d3dhook_onClick function makes use of that
properties
Width: Integer : The width of the screen (readonly)
Height: integer: The height of the screen (readonly)
DisabledZBuffer: boolean : Set this to true if you don't want previously rendered
walls to overlap a newly rendered object (e.g map is rendered first, then the
players are rendered)
WireframeMode: boolean : Set this to true if you don't want the faces of 3d
objects to be filled
MouseClip: boolean : Set this if to true if you have one of those games where
your mouse can go outside of the gamewindow and you don't want that.
OnClick: function(d3dhook_sprite, x, y)
A function to be called when clicked on an sprite (excluding the mouse)
x and y are coordinates in the sprite object. If sprites overlap the highest
zorder sprite will be given. It does NOT care if a transparent part is clicked or
not
Note: If you set this it can cause a slowdown in the game if there are a lot of
sprites and you press the left button a lot
OnKeyDown: function(virtualkey, char)
function(vkey, char) : boolean
A function to be called when a key is pressed in the game window (Not
compatible with DirectInput8)
Return false if you do not wish this key event to pass down to the game
methods
beginUpdate() : Use this function when you intent to update multiple
sprites,textcontainers or textures. Otherwise artifacts may occur (sprite 1 might
be drawn at the new location while sprite 2 might still be at the old location when
a frame is rendered)
endUpdate() : When done updating, call this function to apply the changes
enableConsole(virtualkey): Adds a (lua)console to the specific game. The given
key will bring it up (0xc0=tilde(`~))
createTexture(filename) : Returns a d3dhook_texture object
createTexture(picture, transparentColor OPTIONAL): Returns a d3dhook_texture
object
if the picture is not a transparent image the transparentcolor parameter can be
used to make one of it's colors transparent
properties
Height: integer (ReadOnly)
Width: integer (ReadOnly)
methods
loadTextureByPicture(picture)
properties
-
methods
changeFont(font): Changes the fontmap to the selected font
getTextWidth(string): Returns the width of the given string in pixels
properties
Width: Integer - The width of the sprite in pixels. Default is the initial
texture width
Height: Integer - The height of the sprite in pixels. Default is the initial
texture height
Texture: d3dhook_texture - The texture to show on the screen
methods
-
properties
FontMap : The D3DHook_FontMap object to use for rendering text
Text : The text to render
methods
-
unregisterGlobalDisassembleOverride(id)
properties
LastDisassembleData : Table
OnDisassembleOverride: function(sender: Disassembler, address: integer,
LastDisassembleData: Table): opcode, description
OnPostDisassemble: function(sender: Disassembler, address: integer,
LastDisassembleData: Table, result: string, description: string): result,
description
syntaxhighlighting: boolean : This property is set if the syntax highlighting
codes are accepted or not
Methods
disassemble(address): Disassembles the given instruction and returns the opcode.
It also fills in a LastDisassembleData record
decodeLastParametersToString() : Returns the unedited "Comments" information.
Does not display userdefined comments
getLastDisassembleData() : Returns the LastDisassembleData table.
The table is build-up as follow:
address: integer - The address that was disassembled
opcode: string - The opcode without parameters
parameters: string - The parameters
description: string - The description of this opcode
commentsoverride: string - If set, this will be the
comments/LastParamatersToString result
bytes: table - A table containing the bytes this instruction consists of (1..
)
parameterValueType: DisAssemblerValueType
parameterValue: Integer - The value that the parameter part specified
isJump: boolean - Set to true if the disassembled instruction can change the
EIP/RIP (not ret)
isCall: boolean - Set to true if it's a Call
isRet: boolean - Set to true if it's a Ret
isConditionalJump: boolean - Set to true if it's a conditional jump
properties:
methods:
clear() : Clears all data
dissect(modulename) : Dissects the memory of a module
dissect(base,size) : Dissect the specified memory region
addReference(fromAddress, ToAddress, type, OPTIONAL isstring):
Adds a reference. Type can be jtCall, jtUnconditional, jtConditional, jtMemory
In case of jtMemory setting isstring to true will add it to the referenced
strings list
deleteReference(fromAddress, ToAddress)
saveToFile(filename)
loadFromFile(filename)
methods:
-
properties
Connected: boolean: True if the pipe is connected
methods
lock() : Acquire a lick on this pipe till unlock is called. If lock can not be
acquired, wait. Recursive calls are allowed
unlock()
writeBytes(ByteTable, size OPTIONAL): Writes the provided byte table to the pipe.
if size is not provided, the whole table is sent. Returns the number of bytes sent,
or nil on failure
readBytes(size: integer): returns a byte table from the pipe, or nil on failure
writeDouble(v: double): Writes a double to the pipe. Returns the number of bytes
sent, nil on failure
writeFloat(v: single): writes a float to the pipe. Returns the number of bytes
sent, nil on failure
writeQword(v: qword): writes an 8 byte value to the pipe. Returns the number of
bytes sent, nil on failure
writeDword(v: dword): writes a 4 byte value to the pipe. Returns the number of
bytes sent, nil on failure
writeWord(v: word): writes a word to the pipe. Returns the number of bytes sent,
nil on failure
writeByte(v: byte): writes a byte to the pipe. Returns the number of bytes sent,
nil on failure
properties:
methods:
-
properties
valid: boolean - Returns true if the pipe has been created properly. False on
failure (e.g wrong pipename)
handle: integer - The handle of the pipe serverside (this can be used with
duplicateHandle to get a handle into the target process)
methods
acceptConnection() - Waits for a client to connect to this pipe (Warning: Freezes
the thread this is executed in)
openLuaServer(Name):
Opens a pipe with the given name. The LuaClient dll needs this name to connect to
ce
the return value of this function is the return value of the lua function
(integer)
Settings class
This class can be used to read out and set settings of Game Fuqr and of plugins,
and store your own data
global functions
reloadSettingsFromRegistry(): This will cause Game Fuqr to reload the settings
from the registry and apply them
properties
Path: string - Gets/Sets the current subkey (nil if main)
Value[]: A table access into the settings. e.g: Value["Count"]=12 .Setting
vcalue to nil will delete it
[] : Same as Value[]
methods
getBinaryValue(name, stream) : Gets binary data from the registry value. Adds it
after the current 'position'
setBinaryValue(name, stream, size OPTIONAL) : Sets binary data in the registry
value. If size is given, write from the current position. If not, or size=0, writes
from position 0 to the end
getBinaryValue(name): bytetable
setBinaryValue(name, bytetable)
SymbolList class
This class can be used to look up an address to a symbolname, and a symbolname to
an address
It can also be registered with the internal symbol handler of Game Fuqr
This class makes use of a special "Symbol" table construction that contains size
and optionally other data
Symbol Table:
modulename: string
searchkey: string
address: integer
symbolsize: integer
Global functions
createSymbolList() : Creates an empty symbollist
getMainSymbolList(): Returns the symhandler internal symbol list (Note: This does
not contain .net, modulelist, or other info)
Properties
Methods
clear()
getSymbolFromAddress(address) : Searches the list for the given address. The
address does not have to match the exact address. As long as it falls withing the
range
getSymbolFromString(searchkey)
addModule(modulename, modulepath, address, size, is64bit)
deleteModule(modulename)
deleteModule(address)
addSymbol(modulename, searchkey, address, symbolsize, skipAddressToSymbolLookup
OPTIONAL, extradata OPTIONAL)
Adds a symbol to the symbollist
extradata is a table which can be used to fill in a return type and parameters
for function calls. It has the following fields:
returntype: string
parameters: string
deleteSymbol(searchkey)
deleteSymbol(address)
register() : Registers the current symbol list with the symbol handler
unregister(): Unregisters the current symbol list from the symbol handler
getModuleList(): Returns an indexed table with all the modules
getSymbolList(): Returns an unindex table with each symbol being an element
containing an address
global functions
createPageControl(owner)
properties
ShowTabs: boolean - Shows the tabs
TabIndex: integer - Gets and sets the current tab
ActivePage: TabSheet - Returns the current tabsheet.
PageCount: integer - Gets the number of pages
Page[]: TabSheet - Get a specific page (TabSheet)
methods
addTab() : TabSheet - Creates a new TabSheet
tabRect(index): Rect - returns a rect table describing the position of the
specific tab
properties
Header : string - the additional header to be sent with the next getURL request
methods
getURL(path) - returns a string containing the contents of the url. nil on
failure
postURL(path, urlencodeddata) - posts the given data to the path and returns the
results
global functions
registerCustomTypeLua(typename, bytecount, bytestovaluefunction,
valuetobytesfunction, isFloat)
Registers a Custom type based on lua functions
The bytes to value function should be defined as "function bytestovalue
(b1,b2,b3,b4)" and return an integer as result
The value to bytes function should be defined as "function valuetobytes
(integer)" and return the bytes it should write
registerCustomTypeAutoAssembler(script)
Registers a custom type based on an auto assembler script. The script must
allocate an "ConvertRoutine" and "ConvertBackRoutine"
properties
name: string
functiontypename: string
CustomTypeType: TCustomTypeType - The type of the script
script: string - The custom type script
scriptUsesFloat: boolean - True if this script interprets it's user side values
as float
methods
byteTableToValue({bytetable},Address Optional)
valueToByteTable(value, Address Optional)
properties
Count: integer - number of entries in the list
SelectionCount: integer - The number of selected entries
Entry[index]: table - Information about each entry. Read only. (Index starts at
0)
table is formatted as:
{
address: integer - address of the instruction
instruction: string - disassembled instruction
instructionSize: integer - bytesize of the instruction
referencedAddress: integer - address the code references
referencedData: bytearray - The bytes of the referenced data at the time of
tracing
context: contexttable - the state of the cpu when this instruction got
executed (contains registers(EAX/RAX, ...), floating points(FP) and XMM values
hasStackSnapshot: boolean - set to true if there is a stack entry
selected: boolean - Set to true if the entry is selected
methods
properties
Count: integer - The number of entries in the list (READONLY)
methods
isInList(address): boolean,count - returns true if the current address is in the
list of addresses. In case of true, it also returns the count value (up to 255)
properties
methods
isInList(address): boolean - Returns true if this address is in the list
----SQL Classes----
CustomConnection class (Inheritance: Component->Object)
properties
Connected: Boolean - Gets the current connection state, and lets you connect as
well
LoginPrompt: Boolean
AfterConnect: function(sender)
AfterDisconnect: function(sender)
BeforeConnect: function(sender)
BeforeDisconnect: function(sender)
methods
close(forceClose:Boolean Optional)
open()
methods
methods
startTransaction()
endTransaction()
executeDirect(sql)
getTableNames() : Returns a counted table with all tablenames
properties
methods
createDB()
dropDB()
getInsertID(): integer
methods
methods
commit()
commitRetaining()
rollback()
rollbackRetaining()
startTransaction()
endTransaction()
methods
methods
AddParam(Param)
Field class (Inheritance: Component->Object)
properties
FieldName: string
Index: integer
Value: something
DataType: string
AsBoolean
AsByteTable
AsInteger
AsNumber
AsString
Text
Size
IsNull: boolean
methods
FieldValues[fieldname]: something
Filter: string
Filtered: boolean
FilterOptions: set of [foCaseInsensitive, foNoPartialCompare]
Active: boolean
AutoCalcFields: boolean
methods
append()
appendRecord({values})
cancel()
checkBrowseMode()
clearFields()
close();
controlsDisabled(): boolean
cursorPosChanged;
delete;
disableControls;
edit;
enableControls;
fieldByName(fieldname): Field
findField(fieldname): Field
findFirst() boolean
findLast()
findNext()
findPrior()
first()
insert()
isEmpty()
last()
locate(KeyFields, KeyValues, options:"[loCaseInsensitive, loPartialKey]"):
boolean
lookup(keyfields, KeyValues, ResultFields): something
moveBy(distance)
next()
open()
post()
prior()
refresh()
updateCursorPos()
updateRecord()
methods
-
methods
applyUpdates(MaxErrors Optional)
cancelUpdates()
loadFromStream(stream)
saveToStream(stream)
loadFromFile(filename)
saveToFile(filename)
createDataset()
CustomSQLQuery class (Inheritance: CustomBufDataset->DBDataset->Dataset->Component-
>Object)
properties
prepared: boolean READONLY
SQLConnection: SQLConnection
SQLTransaction: SQLTransaction
methods
prepare()
unprepare()
execSQL()
rowsAffected()
paramByName(paramname): Param
SQL: string
InsertSQL: stringlist
UpdateSQL: stringlist
DeleteSQL: stringlist
RefreshSQL: stringlist
Options: string - set of [sqoKeepOpenOnCommit, sqoAutoApplyUpdates,
sqoAutoCommit,
sqoCancelUpdatesOnRefresh, sqoRefreshUsingSelect]
methods
-
HotkeyHandlerThread(Inheritence: Thread)
getHotkeyHandlerThread() : Returns the hotkey handler thread used internally by CE
properties
state: 0 ('htsActive')=Active , 1('htsMemrecOnly')=Memory records only,
2('htsNoMemrec')=Everything except memoryrecords, 3('htsDisabled')=disabled
methods
-
RemoteThread class(Inheritance: -)
createRemoteThread(address, parameter)
properties
Result : The 32-bit value returned by the thread
methods
waitForThread(timeout OPTIONAL) : Waits for the thread to finish. Timeout is time
in milliseconds. If nil, the timeout it infinite. If 0, it returns without wait
ModuleLoader(Inheritance: -)
loadModule(pathtodll, executeEntryPoint OPTIONAL default=true, timeout OPTIONAL
default=nil=infinite)
properties:
loaded: boolean - true if successfuly mapped
exports: Table containing all exports
entryPoint: integer - address of the entrypoint
WriteLog class(Inheritence: -)
The writelog is the log that keeps all writes (when enabled)
properties
status: boolean
logsize: integer
methods
getLog(): table - Returns an indexed table with the write logs. each entry has a
table with the fields: address, original and new
DotNetDataCollector class
getDotNetDataCollector() - Returns the current dotnetdatacollector object
properties
Attached: boolean - Returns true if attached to a process
methods
enumDomains(): table - Returns an index table containing all domains. Each entry is
build up as {DomainHandle, Name}
enumModuleList(DomainHandle) : table - Returns an indexed table containing
information about all modules. Each module entry is build up as {ModuleHandle,
BaseAddress, Name}
enumTypeDefs(ModuleHandle) : table - Returns an indexed table containing
information about all TypeDefs (classes) . Each entry is build up as {TypeDefToken,
Name, Flags, Extends}
getTypeDefMethods(ModuleHandle, TypedefToken) : table - Returns a table containing
all the methods in the specified typedef. Each entry is build up as {MethodToken,
Name, Attributes, ImplementationFlags, ILCode, NativeCode, SecondaryNativeCode[]:
Integer)
getTypeDefParent(ModuleHandle, TypedefToken): {ModuleHandle, TypedefToken}
getTypeDefData(ModuleHandle, TypedefToken) : table - Returns a table containing all
the fields in the specified typedef. {ObjectType, ElementType, CountOffset,
ElementSize, FirstElementOffset, ClassName, Fields[]{Offset, FieldType, Name} }
getMethodParameters(ModuleHandle, MethodDefToken): table - Returns a table
containing all the parameters of the for method. {Name, CType}
getAddressData(address): table - Queries a specific address and returns information
about it, assuming it is a valid object. It contains the following data:
{StartAddress, ObjectType, ElementType, CountOffset, ElementSize,
FirstElementOffset, ClassName, Fields[]{Offset, FieldType, Name} }
createDiagram(owner)
properties
LineThickness: integer - Default thickness of lines in pixels
LineColor: integer - Sets the default color of lines
PlotPointColor: integer - Sets the default color for points
BlockBackground: integer - Color of the diagramBlocks
BackgroundColor: integer - Color of the diagram background
ArrowStyles: string - can be one or more of the following between [ and ] :
asOrigin : There will be an arrow at the point of origin
asDestination : There will be an arrow at the destination
asPoints: There will be an arrow at plot point locations
asCenterBetweenPoints: There will be an arrow between two
points
asCenter: There will be an arrow in the center of the
line
DiagramBlock class:
The diagramBlock is a block with a header and body which can contain text (ansi
escape codes supported)
properties
Owner: Diagram - The diagram that this block is in
X: integer - x-position of the block
Y: integer - y-position of the block
Width: integer - Width of the block
Height: integer - Height of the block
Caption: string - Header of the block (ansi escape codes supported)
Strings: Strings - Strings object containing the lines of the block (ansi escape
codes supported)
BackgroundColor: integer - When set overrides the default color for the block to
the given one
TextColor: Integer - The starting/default textcolor
Name: string - The name of the block
AutoSize: boolean - If true the width and height of the box will adjust to the
given Caption and Strings
AutoSide: boolean - If true the connection side of a link will be picked for you
instead of providing the side yourself
AutoSideDistance: integer - If autoside is true and there are multiple lines on
the same side, this determines the distance between
ShowHeader: boolean - If true show ther header. (default true)
DragBody: boolean - If true allows dragging of the body. Useful when there is no
header (default false)
Tag: integer - Use for whatever you like
OnDoubleClickHeader: function(DiagramBlock) - Function to call when the block's
header is doubleclicked
OnDoubleClickBody: function(DiagramBlock) - Function to call when the block's
body is doubleclick
OnRenderHeader: function(sender,rect,beforeownerdraw): boolean - Function to call
when the header is being rendered. This is called twice, before and after the
normal painting code. In case of before and the function returns nil or false, the
original text will not be drawn
OnRenderBody: function(sender,rect,beforeownerdraw): boolean - ^ but then for
body
OnDragStart: funtion(DiagramBlock) - Called when a block starts getting dragged
OnDrag: function(DiagramBlock) - Called when a block is dragged around
OnDragEnd: function(DiagramBlock) - Called when a dragged block is released
methods
getLinks(): table - Returns a table two elements: 'asSource' and 'asDestination'.
each of those will have a table with DiagramLinks linking with the box
overlapsWith(block): boolean - Returns true if the two blocks overlap
intersectsWithLine({x,y},{x,y}): boolean,intersectpoint - Returns true and the
point of intersection or false if no itersection
DiagramLink class:
Links between blocks
properties
OriginBlock: DialogBlock - The source of the link
DestinationBlock: DialogBlock - The destination of the link
OriginDescriptor: BlockSideDescriptorTable
DestinationDescriptor: BlockSideDescriptorTable
PointCount: integer - The number of points in the table
Points[index]: table{x,y} - Return a table with x,y coordinates for the point at
the given index (index starts at 0)
LineColor: integer - Color of the line , when set overrides the default
Linethickness: integer - thickness of the line, when set overrides the default
ArrowStyles: string - See diagram ArrowStyles
Name: string - Name of the link
Tag: integer - Use for whatever youy like
OnDblClick: function(sender) - Function to call when the link is doubleclicked
methods
hasLinkToBlock(DiagramBlock): boolean - Returns true/false depending on if this
link has a connection to the provided block
reset() - Sets all custom colors sizes back to default
updateSide(BlockSideDescriptorTable): Updates the side of the block described by
the BlockSideDescriptorTable
getPointIndexAt(x,y): integer - Returns the pointindex at the given x, y
coordinate
addPoint(x,y,index OPTIONAL): creates a point. If no index is given if inside the
line at that line index, else at the end of the list. If a index is given at that
specific index.
removeAllPoints(): Removes all points
RemoteExecutor class
The remoteExecute class creates an executor thread inside the target process
waiting for commands to execute specific functions
An executor can only run one piece of code at a time, but you can have more than
one executor
properties
methods
executeStub(ExecuteCodeExStub,{parameters},timeout,waittilldone)
createCECustomButton(owner)
properties
ShowPrefix: boolean - Process first single '&' per line as an underscore and draw
'&&' as '&'
BorderColor: Color - The color of the button border
BorderSize: integer - The thickness of the border
ButtonColor: Color - The color of the button face
ButtonHighlightedColor: Color - The color of the buttonface when
highlighted(hovered over with the mouse)
ButtonDownColor: Color - The color of the buttonface when the mouse is pressed
down on it
DrawFocusRect: boolean - If true will draw a focus roundrect showing it has
focus
DrawBorder: boolean - default=true. Will draw a border around the button
FocusedSize: integer - The with of the focus roundrect
FocusElipseColor: Color - The color of the focus roundrect
GrowFont: boolean read - When true the font will get resized till the caption
fits the button
RoundingX: integer
RoundingY: integer
CustomDrawn: boolean - Do your own drawing in the OnPaint property of the button
FramesPerSecond: integer - If animation is used this will determine how often per
second the OnPaint gets called
ButtonAnimationSpeed: integer - If not customdrawn, this determnines how long the
animations for enter/leave take
methods
startAnimatorTimer() - Starts the animator timer which will trigger an OnPaint
with the speed of the current framesPerSecond property
stopAnimatorTimer() - Stops the animator timer
ce lua extensions:
string table:
split(character) -> table of strings separated by character