IRC Channel Discord Channel

Elurair (RO Patcher Lite+ROCred Merge) (c) 2012-2022 Ai4rei/AN

Universal auto-patcher for all your updating needs combined with a launcher, which is fully skinnable, highly customizable and easy on resources. It is free of any cost and works on every 32-bit and 64-bit Microsoft* Windows* platform.

Elurair (Free) 2.6.1.184 (stable) Download
Elurair (Demo) 2.6.1.184 (stable) Download
Elurair 2.6.0.174 (untested) Download

News

[2022-11-16] Release 2.6.1.184

This release fixes a lock-up when closing on a running patch process.

[2022-11-01] Release 2.6.0.179

This release fixes, among others, various UI issues and enables audio-only background media.

Older entries

Can be found in the news archives.

Screenshots

Elurair with Sample Skin Elurair Builder Elurair disguising as RO Patcher Lite

Download

Do not provide mirrors for the downloads below. Do not hot-link to the downloads either. Link to this section. Thank you.

Latest release

This build is clean and ready for configuration. It will not work on its own.

2.6.1.184 (292 KB, 32-bit)

Demo

This build is pre-configured to the sample configuration.

2.6.1.184 (230 KB, 32-bit)

Latest nightly (untested)

2.6.0.174 NIGHTLY (566 KB, 32-bit)

Previous versions

Use of these is at your own risk. They are mainly for archaeological research.

Documentation

The sample configuration elurair.default.ini is currently the only available documentation. If someone is willing to write a human-friendly guide, feel free to do so and let me know.


; ------------------------------------------------------------------
; Elurair
; (c) 2012-2022 Ai4rei/AN
;
; ------------------------------------------------------------------

; Lines starting with ; are comments and can be removed before
; embedding the config.

; Numbers are always considered decimal (base 10) unless stated
; otherwise.

; Text is assumed to be UTF-8, some fields may be interpreted as
; system code page (ACP/ANSI).

; When a color value is required, it can be in one of the following
; CSS-like formats:
;       #rgb                    hexadecimal (short)
;       #rrggbb                 hexadecimal (long)
;       rgb(r,g,b)              decimal or hexadecimal
;       rgb(r%,g%,b%)           percentage

[ROCred]
; Identifies this specific Elurair setup. This may be anything that
; uniquely describes the publisher of this setup, such as the server
; name.
; Note: This is needed for the password saving feature to work and
;       allows for different games to have separately saved
;       passwords.
;ConfigID=nachtwolke.ai4rei.com/sakray
ConfigID=

; Whether or not username is remembered.
; Values:
;       0: No
;       1: Yes
CheckSave=0

; Whether or not password is remembered in addition to the username.
; Values:
;       0: No
;       1: Yes
CheckSavePassword=0

; Remembered user name.
; Note: If the password saving feature is enabled and active, this
;       value is not used and the user name saved with the password
;       is used instead.
UserName=

; Whether or not password should be MD5 hashed.
; Values:
;       0: Plaintext
;       1: MD5 hash
; Note: Depending on server-software, you may need to disable
;       server-side hashing, to prevent the MD5 hashes from being
;       rehashed before comparison with stored hashes.
HashMD5=0

; Salt pattern, when MD5 password hashing is used.
; Note: The user password is indicated with {password} and it may
;       appear anywhere in the salt.
; Note: To use arbitrary byte values in the salt, use C-style
;       escaping characters.
; Note: Using salted hashes may improve password safety against pre-
;       computed attacks, but may require additional changes to the
;       server software.
; Note: To not use salty MD5 hashes, leave the value blank.
; Example:
;       \x8A\x16\x38\x73\x6B\x15\x73\x58\x4C\x13\x57\x1D\x6A\xA8\xE4\x31\x00\xEE\xB7\xA1\xA6\x6C\xA5\xBB\x41{password}\x38\xEC\xF7\xD3\xD6\xA8\x7E\x49\x89\x9C\x84\x98\x41\x87\x14
HashMD5Salt=

; Whether second instances are allowed or not.
; Values:
;       0: No
;       1: Yes
; Note: This setting is not meant as measure to prevent double
;       clienting.
SecondInstance=0

; Whether or not the checkbox for remembering user name is
; available.
; Values:
;       0: Available
;       1: Unavailable
PolicyNoCheckSave=0

; Whether or not the notification icon is displayed when in
; background waiting for the client to complete.
; Values:
;       0: Display
;       1: Hide
PolicyNoTrayIcon=0

; Whether or not password is kept during a session when in
; background waiting for the client to complete.
; Values:
;       0: Kept (Convenience)
;       1: Not kept (Security)
PolicyNoSessionPassword=0

; Whether or not the credentials (user name and password) are
; requested when launching an application as client (ActionType 4).
; Values:
;       0: Launcher with user name and password input
;       1: Launcher without user name and password input (user
;          authenticates through other means, ex. in the client)
; Note: When enabled, user name, password and save check box
;       controls are not displayed and the MiscInfo setting has no
;       effect.
PolicyNoCredentials=0

; Whether or not launching an application as client (ActionType 4)
; is allowed, when the patch process does not complete for whatever
; reason.
; Values:
;       0: All patch processes must complete successfully (Safer)
;       1: All patch processes must complete (Debugging)
PolicyNoCheckPatchRotten=0

; Font face of the dialog.
; Note: This should be one of the commonly installed type faces,
;       such as Tahoma or Segoe UI.
; Note: If left empty, default UI font will be used. While this may
;       make the UI style unpredicable to certain extent, it may be
;       needed for non-latin scripts.
FontFace=Tahoma

; Font size of buttons and edit controls in points.
FontSize=9

; Font size of status bar in points.
FontSize2=9

; Provides miscellaneous client information to the server as part of
; the password/hash data. The password/hash is provided as "key".
; Bitmask:
;       &1: Hardware address of the network adapter (mac).
;           Internet-bound adapters are searched first, otherwise
;           the first available is picked. If the MAC address cannot
;           be retrieved, "000000000000" is passed.
; Note: The user receives an agreement prompt the first time they
;       provide the data to the server (privacy).
; Note: The server must be modified to support the data format.
;       Example: mac=112233445566&key=mypwd123
; Note: Password is always the last key-value pair and is not
;       urlencoded.
; Note: Has no effect when PolicyNoCredentials is set.
MiscInfo=0

; Visual Customization (skinning)
;
; Note: This adjusts the visual aspects of the main window, such as
;       control positions and sizes. All values are in pixels, so be
;       sure to test the configuration on high-DPI systems.
; Note: Background picture is taken from bgskin.png, which can also
;       be embedded (BGSKIN). Transparent color is assumed to be
;       #ff00ff (magenta).
; Note: Buttons skins do not support transparent color, use the
;       underlying background for non-button areas to simulate it.
;       The image contains the three states of a button: normal,
;       focus and clicked (in that order). The resulting button size
;       can be of any size, but the total width must be divisible
;       by 3.

; Directory containing skin files.
; Note: This is only needed when your skin files are not embedded.
;SkinDirectory=skin
SkinDirectory=.

; Username text box
IDC_USERNAME.X=44
IDC_USERNAME.Y=69
IDC_USERNAME.W=391
IDC_USERNAME.H=23

; Password text box
IDC_PASSWORD.X=44
IDC_PASSWORD.Y=149
IDC_PASSWORD.W=391
IDC_PASSWORD.H=23

; Save check box
; Note: The skin for this control contains total of 6 sprites. One
;       set for unchecked state and one set for checked state.
IDC_CHECKSAVE.X=52
IDC_CHECKSAVE.Y=209
IDC_CHECKSAVE.W=17
IDC_CHECKSAVE.H=17

; Status bar
IDC_STATUSBAR.X=44
IDC_STATUSBAR.Y=210
IDC_STATUSBAR.W=391
IDC_STATUSBAR.H=23

; Progress bar
; Note: The skins for this control are PROGRESSBG, PROGRESSLEFT,
;       PROGRESSCENTER and PROGRESSRIGHT.
; Note: PROGRESSLEFT and PROGRESSRIGHT are optional, but
;       recommended, unless you want the progress indicator to cover
;       the whole width of the control.
IDC_PROGRESSBAR.X=44
IDC_PROGRESSBAR.Y=234

; Whether or not buttons use hot-tracking.
; Note: Enabling this setting adds two more states to the button
;       image: hot-normal and hot-focus (in that order), so the
;       width must be divisible by 5 then.
; Note: The save check box is also a button, so this setting and all
;       consequences also apply to it.
; Values:
;       0: Buttons do not react to mouse passing over them.
;       1: Buttons change state when mouse passes over them.
ButtonHotTrack=0

; Whether or not the text boxes are transparent.
; Values:
;       0: System default
;       1: Reserved
;       2: Custom foreground and background colors.
EditBackground=0

; Text box background color.
; Note: EditBackground must be set to 2 for this setting to have
;       any effect.
EditBackgroundColor=#fff

; Text box foreground (text) color.
; Note: EditBackground must be set to 2 for this setting to have
;       any effect.
EditForegroundColor=#000

; Whether or not the text boxes have a frame.
; Values:
;       0: System default
;       1: Without frame
; Note: Frameless edit controls are typically used, when the
;       background skin provides some atypical shape for the edit
;       controls (such as rounded corners/ends).
EditFrame=0

; Controls the way the progress indicator center piece is drawn.
; Values:
;       0: Left-aligned clip (bar revealed left to right)
;       1: Right-aligned clip (bar grows left to right)
;       2: Stretch
;       3: Tile
; Note: Clip (values 0 and 1) requires the center piece image to be
;       as wide as the background without the left and right ends.
ProgressCenterMode=0

; Whether or not to show the native window caption and frame.
; Values:
;       0: Hide caption, skin covers entire window
;       1: Show caption, skin covers only client area
; Note: Even when the caption is hidden, you can provide minimize
;       and close actions with custom buttons.
ShowWindowCaption=0

; Whether or not the status bar is transparent.
; Values:
;       0: System default
;       1: Transparent
;       2: Custom foreground and background colors.
StatusBackground=0

; Status bar background color.
; Note: EditBackground must be set to 2 for this setting to have
;       any effect.
StatusBackgroundColor=#fff

; Status bar foreground (text) color.
; Note: EditBackground must be set to 1 or 2 for this setting to
;       have any effect.
StatusForegroundColor=#000

; Media file to use as background (experimental).
; Supported rendering engines:
;       - Media Foundation (Vista or newer)
;       - DirectShow
; Note: Setting this option will degrade performance and may cause
;       the patch process to fail on slow computers.
; Note: The video should have the same size as the background
;       picture. If the video has incorrect size, it is stretched to
;       fit the background picture.
; Note: If the video cannot be played back, the background picture
;       is displayed instead. Ideally the background image should be
;       the first frame of the video to avoid glitches.
; Note: You can use audio-only media.
; Note: Use the correct file extension for the media, some renderers
;       are picky about it.
;MediaBackground=skin/bkgnd.avi
;MediaBackground=skin/music.mp3
MediaBackground=

; Developer mode.
; Values:
;       1298493303: Enabled
; Note: This setting enables some additional messages or features
;       that can be useful during development, but may considered
;       disturbing in production.
DevMode=0

; Define this to 1.
; Values:
;       0: Elurair is not configured.
;       1: Elurair is configured.
; Note: This setting is to prevent starting an uninitialized
;       configuration that would result in broken, unusable UI.
ConfigIsReady=0

; Action Buttons
;
; You can register buttons to appear on the user interface, that
; will do a predefined action. Each section in the format
; ROCred.Buttons.<your button identifier> will create a new button.
; The button identifier may consist of A-Z, 0-9 and _ (underscore),
; must be unique (among other custom buttons) and also serves as
; name for skins (see skinning section for more details on button
; skinning). The amount of buttons is only limited by available
; memory and GDI resources.

; Start button
; Note: If you specify a button skin (btnstart.png / BTNSTART)
;       W and H members will be ignored and taken from the image.
[ROCred.Buttons.BTNSTART#1]
X=219
Y=239
W=75
H=23
DisplayName=#1005
ActionType=4
ActionData=ragexe.exe 1rag1
ActionHandler=

; Close button
; Note: If you specify a button skin (btnclose.png / BTNCLOSE)
;       W and H members will be ignored and taken from the image.
[ROCred.Buttons.BTNCLOSE#2]
X=339
Y=239
W=75
H=23
DisplayName=#1006
ActionType=2
ActionData=
ActionHandler=

; Sample button
[ROCred.Buttons.CUSTOM1]

; Position of the button.
X=7
Y=43

; Size of the button.
; Note: If you specify a button skin, values will be ignored and
; taken from the image.
W=75
H=23

; Text to be displayed on the button.
; Note: If you specify a button skin, this becomes a tool tip for
;       the button.
; Note: To refer to a string table entry, use #<number> (ex. #123).
DisplayName=Website

; Action to invoke when the button is pressed.
; Values:
;       0: Launch application or website
;       1: Launch application or website, and close Elurair
;       2: Close Elurair
;       3: Display a message box (uses C-style escaping characters)
;       4: Launch application as client (with credentials and other
;          stuff); this allows running alternative clients
;       5: Minimize Elurair window
;       6: Launch application as client (with credentials and other
;          stuff), and close Elurair; this allows running
;          alternative clients
ActionType=0

; Data associated with button's action type.
; Note: To refer to a string table entry, use #<number> (ex. #123).
; Note: If you specify arguments for action 4, they will be
;       concatenated with the credential arguments.
;ActionData=ragexeRE.exe 1sak1
ActionData=http://nn.ai4rei.net/

; Handler associated with button's action type.
; ActionType:
;    0, 1: See the documentation of SHELLEXECUTEINFO::lpClass as to
;          what values this setting may take. When the value is
;          empty, the handler is inferred.
;          You can use this to specify the file extension to use
;          when running a file which has a different extension or
;          none at all. Specify ".exe" if you want to run an
;          executable that has the extension ".bin" for example.
; 2, 3, 5: Ignored.
;       4: Ignored, always assumed to be ".exe" type.
; Note: The only handlers for ActionType 0 and 1 supported on
;       Windows XP and earlier are file extensions, file classes
;       and GUIDs.
ActionHandler=

; Web Browsers
;
; You can register (web) browsers to appear on the user interface to
; display local or remote HTML resources. Each section in the format
; ROCred.Browsers.<your browser identifier> will create a new
; browser. The browser identifier may consist of A-Z, 0-9 and
; _ (underscore) and must be unique (among other custom controls).
; The amount of browsers is only limited by available memory and GDI
; resources. For seamless integration into the skin, following CSS
; styles may come handy:
; html { border-width:0; }  /* disables frame* around the browser */
; body { background-attachment:fixed; }  /* static background */
; html { overflow:hidden; } /* IE6: disable scrollbars */
; body { overflow:hidden; } /* IE7+: disable scrollbars */
; Note: If disabling frame does not work, specify following tag in
; <head> tag:
; <meta http-equiv="X-UA-Compatible" content="IE=6">

; Sample Browser
[ROCred.Browsers.CUSTOM2]

; Position of the browser.
X=7
Y=7

; Size of the browser.
W=210
H=120

; URL/Website to open in the browser.
; Note: This is not restricted to internet locations, a local file
;       may also be specified.
; Note: Supported protocols are:
;       - relative/path/file.htm
;           Urls missing a protocol specficiation (ex. relative
;           paths) are transformed to file: protocol.
;       - http://domain.tld/path/to/file.htm
;           Recommended. Works on all Windows versions.
;       - https://domain.tld/path/to/file.htm
;           May not work on older versions with certain server
;           configurations.
;       - res://file/id or res://file/type/id
;           Content stored as a resource (inside an EXE or DLL).
; Note: To refer to a string table entry, use #<number> (ex. #123).
Url=http://ai4rei.net/p/skal

; Patch Configurations
;
; You can register patch processes to run before ActionType=4 button
; actions can be executed. Each section in the format
; ROCred.Patcher.<your config identifier> will create a separate
; patch process. The config identifier must be unique (among other
; patch configs), but is otherwise meaningless. Patch processes run
; sequentially in given order. The amount of patch configs is only
; limited by available memory.
; Each downloaded file is processed by a file type handler, that may
; or may not post-process it. By default the application comes with
; the follwing handlers:
;       - *.gpf (merged into archive defined in PakFile)
;       - *.rgz (unpacked)
;       - *.zip (unpacked)
;       - *.*   (will save unhandled files as is)
; When at least one patch process is registered, the patcher can be
; updated by distributing the updated version as "elurair.new".
[ROCred.Patchers.Main]

; Local file name to record patch progress in.
; Note: The file records the last processed counter from the patch
;       list stored as a 32-bit unsigned integer in little-endian
;       byte-order (4 bytes, LSB first).
; Note: Patch process will fail, if this file is missing or contains
;       invalid data (i.e. it is not auto-created).
InfFile=main.inf

; Local file name for archive-style patches. Actual meaning depends
; on the archive handler in use.
PakFile=main.grf

; Remote file name that contains list of patches to download and
; apply. Each line corresponds to one patch. Use only characters
; from the ASCII character set. Empty lines and lines starting with
; // are ignored.
; Format:
;       <incremental counter> <patch file name>
; RegExp:
;       /^(\d{2,}|[1-9])[ \t]+([^\r\n]+)$/m
; Example:
;       1   20XX-07-04SetupFix.rgz
;       2   20XX-07-05PatchFix.rgz
;       //3 20XX-07-11Event.gpf
;       4   20XX-07-11Event2.gpf
WebList=patch_main.txt

; Path on the patch server that will be used when downloading remote
; files.
WebPath=/web/patch/main/

; Patch server IP/domain name that will be used when downloading
; remote files.
WebSite=patch.example.com

; Protocol to use when downloading remote files.
; Values:
;       http
WebProt=http

; Patch progress to start patching at.
; Note: This is meant to begin patch progress at a desired point in
;       case of 3rd party patch servers.
;InfPatchMin=123
InfPatchMin=

; Patch progress to stop patching at (i.e. up to including).
; Note: This is meant to limit patch progress to a desired point in
;       case of 3rd party patch servers.
;InfPatchMax=2411
InfPatchMax=

[ROCred.Patchers.PK]
InfFile=pk.dat
PakFile=pk.pak
WebList=patch_pk.txt
WebPath=/
WebSite=pkpatch.example.com
WebProt=http