Risa's All In One Menu 5.4+ includes an optional C API that lets another SKSE
plugin add its own launcher button. The integration stays inside your plugin;
users do not need a separate compatibility patch.
Native hotkey control is required
Your plugin must let Risa disable and restore its native menu hotkey at
runtime. Risa rejects registrations without SetHotkeyEnabled so the same
physical key cannot be handled by both mods.
Required callbacks
Open
OpenMenu requests that your menu open and returns whether the request was
accepted.
Close
CloseMenu closes your menu. It must be safe to call when the menu is already
closed.
State
IsMenuOpen reports whether your menu is currently open.
Hotkey
SetHotkeyEnabled enables or disables only your native opening hotkey.
SetHotkeyEnabled(false) means Risa is managing the menu.
SetHotkeyEnabled(true) means the player excluded your menu or Risa stopped
managing it. Keep this change runtime-only; do not overwrite the player's INI
or save file.
Download the source package from
Risa's All In One Menu on Nexus Mods
and copy RisaMenuIntegrationAPI.h into your project. During SKSE kPostLoad,
use GetModuleHandleW and GetProcAddress to request the interface. Do not
call LoadLibrary. Only register when RisaAllInOneMenu.dll and the requested
API version are already available.
#include "RisaMenuIntegrationAPI.h"
bool Open ( void * ) {
return MyMenu :: Open ();
}
void Close ( void * ) {
MyMenu :: Close ();
}
bool IsOpen ( void * ) {
return MyMenu :: IsOpen ();
}
void SetNativeHotkey ( void * , bool enabled ) {
MyInput :: SetMenuHotkeyEnabled ( enabled );
}
void RegisterWithRisa () {
const HMODULE module = GetModuleHandleW ( L "RisaAllInOneMenu.dll" );
if ( ! module ) return ;
const auto getApi = reinterpret_cast <
RisaMenuIntegrationAPI :: GetInterfaceFn > (
GetProcAddress ( module ,
"RisaAllInOneMenu_GetIntegrationAPI" ));
if ( ! getApi ) return ;
const auto * api = getApi ( RisaMenuIntegrationAPI :: kInterfaceVersion );
if ( ! api ) return ;
RisaMenuIntegrationAPI :: MenuRegistrationV1 menu ;
menu . menuId = "YourName.YourMod" ;
menu . displayName = "Your Menu" ;
menu . iconCodepoint = 0xf0c9 ;
menu . nativeHotkeyLabel = "F8" ;
menu . OpenMenu = Open ;
menu . CloseMenu = Close ;
menu . IsMenuOpen = IsOpen ;
menu . SetHotkeyEnabled = SetNativeHotkey ;
const auto result = api -> RegisterMenu ( & menu );
if ( result != RisaMenuIntegrationAPI :: Registration_Success ) {
// Log the result so integration problems are easy to diagnose.
}
}
Register once. Risa copies all supplied text. Your callback code and optional
context pointer must remain valid until the game exits or you call
UnregisterMenu(menuId).
Registration fields
Field
What to provide
menuId
A permanent hidden identifier, such as YourName.YourMod.
displayName
The UTF-8 name players see in the launcher and settings.
iconCodepoint
A Font Awesome 6 Free Solid codepoint. Use 0 for Risa's default icon.
nativeHotkeyLabel
A short display label for your configured native key, such as F8 or Shift + O.
context
Optional state passed back to every callback.
All 1,375 Font Awesome Solid glyphs bundled with RisaUI are below. Click an icon to copy its code, or search by icon name, keyword, or hexadecimal code. Set menu.iconCodepoint to 0 to use Risa's default play icon.
Browse all 1,375 Font Awesome Solid icons
0xE005
0xE006
0xE00D
0xE012
0xE03F
0xE040
0xE041
0xE059
0xE05A
0xE05B
0xE05C
0xE05D
0xE05E
0xE060
0xE061
0xE062
0xE063
0xE064
0xE065
0xE066
0xE067
0xE068
0xE069
0xE06A
0xE06B
0xE06C
0xE06D
0xE06E
0xE06F
0xE070
0xE071
0xE072
0xE073
0xE074
0xE075
0xE076
0xE085
0xE086
0xE097
0xE098
0xE09A
0xE0A9
0xE0AC
0xE0B4
0xE0B7
0xE0BB
0xE0D8
0xE0DF
0xE0E3
0xE0E4
0xE131
0xE135
0xE139
0xE13A
0xE13B
0xE13C
0xE140
0xE152
0xE163
0xE169
0xE16D
0xE17B
0xE184
0xE185
0xE18F
0xE19A
0xE19B
0xE1A8
0xE1B0
0xE1BC
0xE1C4
0xE1C8
0xE1D3
0xE1D5
0xE1D7
0xE1ED
0xE1F3
0xE1F6
0xE1FE
0xE209
0xE221
0xE222
0xE22D
0xE23D
0xE289
0xE29C
0xE2B7
0xE2BB
0xE2C5
0xE2CA
0xE2CD
0xE2CE
0xE2E6
0xE2EB
0xE31E
0xE3AF
0xE3B1
0xE3B2
0xE3F5
0xE43C
0xE445
0xE447
0xE448
0xE46C
0xE473
0xE476
0xE477
0xE47A
0xE47B
0xE490
0xE494
0xE4A5
0xE4A8
0xE4A9
0xE4AA
0xE4AB
0xE4AC
0xE4AD
0xE4AF
0xE4B0
0xE4B3
0xE4B5
0xE4B6
0xE4B7
0xE4B8
0xE4B9
0xE4BA
0xE4BB
0xE4BC
0xE4BD
0xE4BE
0xE4BF
0xE4C0
0xE4C1
0xE4C2
0xE4C3
0xE4C4
0xE4C5
0xE4C6
0xE4C7
0xE4C8
0xE4C9
0xE4CA
0xE4CB
0xE4CC
0xE4CE
0xE4CF
0xE4D0
0xE4D1
0xE4D2
0xE4D3
0xE4D4
0xE4D5
0xE4D6
0xE4D7
0xE4D8
0xE4D9
0xE4DA
0xE4DB
0xE4DC
0xE4DD
0xE4DE
0xE4E0
0xE4E1
0xE4E2
0xE4E3
0xE4E4
0xE4E5
0xE4E6
0xE4E8
0xE4E9
0xE4EA
0xE4EB
0xE4ED
0xE4EF
0xE4F0
0xE4F1
0xE4F2
0xE4F3
0xE4F4
0xE4F5
0xE4F6
0xE4F7
0xE4F8
0xE4F9
0xE4FA
0xE4FB
0xE4FC
0xE4FD
0xE4FE
0xE4FF
0xE500
0xE501
0xE502
0xE503
0xE507
0xE508
0xE509
0xE50A
0xE50B
0xE50C
0xE50D
0xE50E
0xE50F
0xE510
0xE511
0xE512
0xE513
0xE514
0xE515
0xE516
0xE517
0xE518
0xE519
0xE51A
0xE51B
0xE51C
0xE51D
0xE51E
0xE51F
0xE520
0xE521
0xE522
0xE523
0xE524
0xE525
0xE527
0xE528
0xE529
0xE52A
0xE52B
0xE52C
0xE52D
0xE52E
0xE52F
0xE532
0xE533
0xE534
0xE535
0xE536
0xE537
0xE538
0xE539
0xE53A
0xE53B
0xE53C
0xE53D
0xE53E
0xE53F
0xE540
0xE541
0xE542
0xE543
0xE544
0xE545
0xE546
0xE547
0xE548
0xE549
0xE54A
0xE54B
0xE54C
0xE54D
0xE54E
0xE54F
0xE551
0xE552
0xE553
0xE554
0xE555
0xE556
0xE557
0xE558
0xE55A
0xE55B
0xE55C
0xE55D
0xE55E
0xE55F
0xE560
0xE561
0xE562
0xE563
0xE564
0xE565
0xE566
0xE567
0xE568
0xE569
0xE56A
0xE56B
0xE56C
0xE56D
0xE56E
0xE56F
0xE571
0xE572
0xE573
0xE574
0xE576
0xE577
0xE578
0xE579
0xE57A
0xE57B
0xE57C
0xE57D
0xE57E
0xE57F
0xE580
0xE581
0xE582
0xE583
0xE584
0xE585
0xE586
0xE587
0xE589
0xE58A
0xE58B
0xE58C
0xE58D
0xE58E
0xE58F
0xE591
0xE592
0xE593
0xE594
0xE595
0xE596
0xE597
0xE598
0xE599
0xE59A
0xE59C
0xE59D
0xE5A0
0xE5A1
0xE5A9
0xE5AA
0xE5AF
0xE5B4
0xE678
0xE67A
0xE682
0xE68F
0xE691
0xE695
0xE696
0xE697
0xE698
0xE699
0xE69A
0xE69B
0xE790
0xE807
0xE80A
0xE80B
0xE816
0xE81B
0xE81C
0xE81D
0xE820
0xE845
0xE846
0xE847
0xE848
0xE849
0xE84A
0xE84B
0xE84C
0xE84D
0xE84E
0xE84F
0xE850
0xF000
0xF001
0xF002
0xF004
0xF005
0xF007
0xF008
0xF009
0xF00A
0xF00B
0xF00C
0xF00D
0xF00E
0xF010
0xF011
0xF012
0xF013
0xF015
0xF017
0xF018
0xF019
0xF01C
0xF01E
0xF021
0xF022
0xF023
0xF024
0xF025
0xF026
0xF027
0xF028
0xF029
0xF02A
0xF02B
0xF02C
0xF02D
0xF02E
0xF02F
0xF030
0xF031
0xF032
0xF033
0xF034
0xF035
0xF036
0xF037
0xF038
0xF039
0xF03A
0xF03B
0xF03C
0xF03D
0xF03E
0xF041
0xF042
0xF043
0xF044
0xF047
0xF048
0xF049
0xF04A
0xF04B
0xF04C
0xF04D
0xF04E
0xF050
0xF051
0xF052
0xF053
0xF054
0xF055
0xF056
0xF057
0xF058
0xF059
0xF05A
0xF05B
0xF05E
0xF060
0xF061
0xF062
0xF063
0xF064
0xF065
0xF066
0xF068
0xF06A
0xF06B
0xF06C
0xF06D
0xF06E
0xF070
0xF071
0xF072
0xF073
0xF074
0xF075
0xF076
0xF077
0xF078
0xF079
0xF07A
0xF07B
0xF07C
0xF07D
0xF07E
0xF080
0xF083
0xF084
0xF085
0xF086
0xF089
0xF08B
0xF08D
0xF08E
0xF090
0xF091
0xF093
0xF094
0xF095
0xF098
0xF09C
0xF09D
0xF09E
0xF0A0
0xF0A1
0xF0A3
0xF0A4
0xF0A5
0xF0A6
0xF0A7
0xF0A8
0xF0A9
0xF0AA
0xF0AB
0xF0AC
0xF0AD
0xF0AE
0xF0B0
0xF0B1
0xF0B2
0xF0C0
0xF0C1
0xF0C2
0xF0C3
0xF0C4
0xF0C5
0xF0C6
0xF0C7
0xF0C8
0xF0C9
0xF0CA
0xF0CB
0xF0CC
0xF0CD
0xF0CE
0xF0D0
0xF0D1
0xF0D6
0xF0D7
0xF0D8
0xF0D9
0xF0DA
0xF0DB
0xF0DC
0xF0DD
0xF0DE
0xF0E0
0xF0E2
0xF0E3
0xF0E7
0xF0E8
0xF0E9
0xF0EA
0xF0EB
0xF0EC
0xF0ED
0xF0EE
0xF0F0
0xF0F1
0xF0F2
0xF0F3
0xF0F4
0xF0F8
0xF0F9
0xF0FA
0xF0FB
0xF0FC
0xF0FD
0xF0FE
0xF100
0xF101
0xF102
0xF103
0xF104
0xF105
0xF106
0xF107
0xF109
0xF10A
0xF10B
0xF10D
0xF10E
0xF110
0xF111
0xF118
0xF119
0xF11A
0xF11B
0xF11C
0xF11E
0xF120
0xF121
0xF122
0xF124
0xF125
0xF126
0xF127
0xF129
0xF12B
0xF12C
0xF12D
0xF12E
0xF130
0xF131
0xF132
0xF133
0xF134
0xF135
0xF137
0xF138
0xF139
0xF13A
0xF13D
0xF13E
0xF140
0xF141
0xF142
0xF143
0xF144
0xF145
0xF146
0xF148
0xF149
0xF14A
0xF14B
0xF14C
0xF14D
0xF14E
0xF150
0xF151
0xF152
0xF153
0xF154
0xF156
0xF157
0xF158
0xF159
0xF15B
0xF15C
0xF15D
0xF15E
0xF160
0xF161
0xF162
0xF163
0xF164
0xF165
0xF175
0xF176
0xF177
0xF178
0xF182
0xF183
0xF185
0xF186
0xF187
0xF188
0xF191
0xF192
0xF193
0xF195
0xF197
0xF199
0xF19C
0xF19D
0xF1AB
0xF1AC
0xF1AD
0xF1AE
0xF1B0
0xF1B2
0xF1B3
0xF1B8
0xF1B9
0xF1BA
0xF1BB
0xF1C0
0xF1C1
0xF1C2
0xF1C3
0xF1C4
0xF1C5
0xF1C6
0xF1C7
0xF1C8
0xF1C9
0xF1CD
0xF1CE
0xF1D8
0xF1DA
0xF1DC
0xF1DD
0xF1DE
0xF1E0
0xF1E1
0xF1E2
0xF1E3
0xF1E4
0xF1E5
0xF1E6
0xF1EA
0xF1EB
0xF1EC
0xF1F6
0xF1F8
0xF1F9
0xF1FB
0xF1FC
0xF1FD
0xF1FE
0xF200
0xF201
0xF204
0xF205
0xF206
0xF207
0xF20A
0xF20B
0xF217
0xF218
0xF219
0xF21A
0xF21B
0xF21C
0xF21D
0xF21E
0xF221
0xF222
0xF223
0xF224
0xF225
0xF226
0xF227
0xF228
0xF229
0xF22A
0xF22B
0xF22C
0xF22D
0xF233
0xF234
0xF235
0xF236
0xF238
0xF239
0xF240
0xF241
0xF242
0xF243
0xF244
0xF245
0xF246
0xF247
0xF248
0xF249
0xF24D
0xF24E
0xF251
0xF252
0xF253
0xF254
0xF255
0xF256
0xF257
0xF258
0xF259
0xF25A
0xF25B
0xF25C
0xF25D
0xF26C
0xF271
0xF272
0xF273
0xF274
0xF275
0xF276
0xF277
0xF279
0xF27A
0xF28B
0xF28D
0xF290
0xF291
0xF29A
0xF29D
0xF29E
0xF2A0
0xF2A1
0xF2A2
0xF2A3
0xF2A4
0xF2A7
0xF2A8
0xF2B4
0xF2B5
0xF2B6
0xF2B9
0xF2BB
0xF2BD
0xF2C1
0xF2C2
0xF2C7
0xF2C8
0xF2C9
0xF2CA
0xF2CB
0xF2CC
0xF2CD
0xF2CE
0xF2D0
0xF2D1
0xF2D2
0xF2D3
0xF2DB
0xF2DC
0xF2E5
0xF2E7
0xF2EA
0xF2ED
0xF2F1
0xF2F2
0xF2F5
0xF2F6
0xF2F9
0xF2FE
0xF302
0xF303
0xF304
0xF305
0xF306
0xF309
0xF30A
0xF30B
0xF30C
0xF312
0xF31C
0xF31E
0xF328
0xF337
0xF338
0xF34E
0xF358
0xF359
0xF35A
0xF35B
0xF35D
0xF360
0xF362
0xF363
0xF386
0xF387
0xF390
0xF3A5
0xF3BE
0xF3BF
0xF3C1
0xF3C5
0xF3C9
0xF3CD
0xF3CE
0xF3CF
0xF3D1
0xF3DD
0xF3E0
0xF3E5
0xF3ED
0xF3FA
0xF3FB
0xF3FF
0xF410
0xF422
0xF424
0xF432
0xF433
0xF434
0xF436
0xF439
0xF43A
0xF43C
0xF43F
0xF441
0xF443
0xF445
0xF447
0xF44B
0xF44E
0xF450
0xF453
0xF458
0xF45C
0xF45D
0xF45F
0xF461
0xF462
0xF466
0xF468
0xF469
0xF46A
0xF46B
0xF46C
0xF46D
0xF470
0xF471
0xF472
0xF474
0xF477
0xF478
0xF479
0xF47E
0xF47F
0xF481
0xF482
0xF484
0xF485
0xF486
0xF487
0xF48B
0xF48D
0xF48E
0xF490
0xF491
0xF492
0xF493
0xF494
0xF496
0xF497
0xF49E
0xF4AD
0xF4B3
0xF4B8
0xF4B9
0xF4BA
0xF4BD
0xF4BE
0xF4C0
0xF4C1
0xF4C2
0xF4C4
0xF4CD
0xF4CE
0xF4D3
0xF4D6
0xF4D7
0xF4D8
0xF4D9
0xF4DA
0xF4DB
0xF4DE
0xF4DF
0xF4E2
0xF4E3
0xF4FB
0xF4FC
0xF4FD
0xF4FE
0xF4FF
0xF500
0xF501
0xF502
0xF503
0xF504
0xF505
0xF506
0xF507
0xF508
0xF509
0xF515
0xF516
0xF517
0xF518
0xF519
0xF51A
0xF51B
0xF51C
0xF51D
0xF51E
0xF51F
0xF520
0xF521
0xF522
0xF523
0xF524
0xF525
0xF526
0xF527
0xF528
0xF529
0xF52A
0xF52B
0xF52D
0xF52E
0xF52F
0xF530
0xF532
0xF533
0xF534
0xF535
0xF537
0xF538
0xF539
0xF53A
0xF53B
0xF53C
0xF53D
0xF53E
0xF53F
0xF540
0xF542
0xF543
0xF544
0xF545
0xF546
0xF547
0xF548
0xF549
0xF54A
0xF54B
0xF54C
0xF54D
0xF54E
0xF54F
0xF550
0xF551
0xF552
0xF553
0xF554
0xF555
0xF556
0xF557
0xF558
0xF559
0xF55A
0xF55B
0xF55C
0xF55D
0xF55E
0xF55F
0xF560
0xF561
0xF562
0xF563
0xF564
0xF565
0xF566
0xF567
0xF568
0xF569
0xF56A
0xF56B
0xF56C
0xF56D
0xF56E
0xF56F
0xF570
0xF571
0xF572
0xF573
0xF574
0xF575
0xF576
0xF577
0xF578
0xF579
0xF57A
0xF57B
0xF57C
0xF57D
0xF57E
0xF57F
0xF580
0xF581
0xF582
0xF583
0xF584
0xF585
0xF586
0xF587
0xF588
0xF589
0xF58A
0xF58B
0xF58C
0xF58D
0xF58E
0xF590
0xF591
0xF593
0xF594
0xF595
0xF596
0xF597
0xF598
0xF599
0xF59A
0xF59B
0xF59C
0xF59D
0xF59F
0xF5A0
0xF5A1
0xF5A2
0xF5A4
0xF5A5
0xF5A6
0xF5A7
0xF5AA
0xF5AB
0xF5AC
0xF5AD
0xF5AE
0xF5AF
0xF5B0
0xF5B1
0xF5B3
0xF5B4
0xF5B6
0xF5B7
0xF5B8
0xF5BA
0xF5BB
0xF5BC
0xF5BD
0xF5BF
0xF5C0
0xF5C1
0xF5C2
0xF5C3
0xF5C4
0xF5C5
0xF5C7
0xF5C8
0xF5C9
0xF5CA
0xF5CD
0xF5CE
0xF5D0
0xF5D1
0xF5D2
0xF5D7
0xF5DA
0xF5DC
0xF5DE
0xF5DF
0xF5E1
0xF5E4
0xF5E7
0xF5EB
0xF5EE
0xF5FC
0xF5FD
0xF601
0xF604
0xF610
0xF613
0xF619
0xF61F
0xF621
0xF624
0xF625
0xF629
0xF62A
0xF62E
0xF62F
0xF630
0xF637
0xF63B
0xF63C
0xF641
0xF644
0xF647
0xF64A
0xF64F
0xF651
0xF653
0xF654
0xF655
0xF658
0xF65D
0xF65E
0xF662
0xF664
0xF665
0xF666
0xF669
0xF66A
0xF66B
0xF66D
0xF66F
0xF674
0xF676
0xF678
0xF679
0xF67B
0xF67C
0xF67F
0xF681
0xF682
0xF683
0xF684
0xF687
0xF688
0xF689
0xF696
0xF698
0xF699
0xF69A
0xF69B
0xF6A0
0xF6A1
0xF6A7
0xF6A8
0xF6A9
0xF6AD
0xF6B6
0xF6B7
0xF6BB
0xF6BE
0xF6C0
0xF6C3
0xF6C4
0xF6C8
0xF6CF
0xF6D1
0xF6D3
0xF6D5
0xF6D7
0xF6D9
0xF6DD
0xF6DE
0xF6E2
0xF6E3
0xF6E6
0xF6E8
0xF6EC
0xF6ED
0xF6F0
0xF6F1
0xF6F2
0xF6FA
0xF6FC
0xF6FF
0xF700
0xF70B
0xF70C
0xF70E
0xF714
0xF715
0xF717
0xF71E
0xF722
0xF728
0xF729
0xF72B
0xF72E
0xF72F
0xF73B
0xF73C
0xF73D
0xF740
0xF743
0xF747
0xF74D
0xF751
0xF752
0xF753
0xF756
0xF75A
0xF75B
0xF75E
0xF75F
0xF769
0xF76B
0xF76C
0xF76F
0xF770
0xF772
0xF773
0xF77C
0xF77D
0xF780
0xF781
0xF783
0xF784
0xF786
0xF787
0xF788
0xF78C
0xF793
0xF794
0xF796
0xF79C
0xF79F
0xF7A0
0xF7A2
0xF7A4
0xF7A5
0xF7A6
0xF7A9
0xF7AA
0xF7AB
0xF7AD
0xF7AE
0xF7B5
0xF7B6
0xF7B9
0xF7BA
0xF7BD
0xF7BF
0xF7C0
0xF7C2
0xF7C4
0xF7C5
0xF7C9
0xF7CA
0xF7CC
0xF7CD
0xF7CE
0xF7D0
0xF7D2
0xF7D7
0xF7D8
0xF7D9
0xF7DA
0xF7E4
0xF7E5
0xF7E6
0xF7EC
0xF7EF
0xF7F2
0xF7F3
0xF7F5
0xF7F7
0xF7FA
0xF7FB
0xF802
0xF805
0xF806
0xF807
0xF80D
0xF80F
0xF810
0xF812
0xF815
0xF816
0xF818
0xF81D
0xF827
0xF828
0xF829
0xF82A
0xF82F
0xF83E
0xF84A
0xF84C
0xF850
0xF853
0xF85E
0xF863
0xF86D
0xF879
0xF87B
0xF87C
0xF87D
0xF881
0xF882
0xF884
0xF885
0xF886
0xF887
0xF891
0xF897
0xF8C0
0xF8C1
0xF8CC
0xF8D7
0xF8D9
0xF8EF
0xF8FF
Keep the same ID
The ID is a hidden name Risa uses to recognize your menu between game
sessions. Players never see it.
Choose one unique ID and keep using that exact value in every update. Changing
it makes Risa treat the menu as a new integration, so the player's saved
position, visibility, exclusion, and Risa hotkey will no longer be connected
to it. Use only letters, numbers, ., _, and -.
Report the native key
Set nativeHotkeyLabel to the native key your plugin currently has configured.
This text is informational; Risa does not simulate or parse it. If your plugin
changes that key during the same game session, unregister and register again
with the same menuId and the updated label.
Compatibility
If Risa or the requested API version is unavailable, skip registration and
leave your plugin's normal hotkey enabled. Your menu should continue working
normally without Risa installed.