(POTENTIAL) ♥ GUIDE - CREATE PLUGINS ♥ (POTENTIAL)

Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • Public Service Announcement

    Hey Guest, I’ve got some exciting news to share! 🎉

    Starting this December, I’ll be moving the entire GameServersHub website away from WordPress and rebuilding it in Next.js! This upgrade will bring incredibly faster speeds, smoother performance, and a modern user experience that sets the stage for everything coming next.

    In 2026, GameServersHub will be entering a new era. I’ll be revamping the entire platform from the ground up and launching a brand-new, fully modernized marketplace. It’ll feature a cleaner design, improved functionality, and better tools for both creators and server owners.

    On top of that, development has already started on the GameServerListing project at https://gsl-six.vercel.app/, which is expected to launch in early Q1 2026. This new system will make discovering and managing servers easier than ever before.


    👉 Stay in the loop!
    Join our Discord for behind-the-scenes updates, early previews, and community discussions.

    » Click here to join our Discord! «

    ~ MrOwlSky

GamingOGs

Supporter Rank
Joined
Apr 24, 2018
Messages
383
We have found a public guide created online and are simply just reposting the guide in hopes this guide will help inspire and bring in potential devs for ArkServerAPI.

You can call most of native ARK functions and read/change data members. However, it's not complete yet. Take a look at files in "include/API" folder to find out what is available.

Creating a plugin:
1) Create a new Visual Studio DLL x64 project.

2) Include "API" folder to your project.

API Overview:

Ark.h contains all API functions from ArkApi.dll.

1) Getting a pointer to UWorld:
UWorld* uWorld = Ark::GetWorld();

2) Getting a pointer to AShooterGameMode:
AShooterGameMode* aShooterGameMode = Ark::GetGameMode();

3) Adding a new chat command:
Ark::AddChatCommand("command name", &callback);

Example:
void ChatCmd(AShooterPlayerController* aShooterPlayerController, FString* message, int mode)
{
// do something here
}

Ark::AddChatCommand("/test", &ChatCmd);


4) Adding a new console command (only server admins may use it):

Ark::AddConsoleCommand("command name", &callback);
Example:

void ConsoleCmd(APlayerController* aPlayerController, FString* cmd, bool bWriteToLog)
{
// do something here
}

Ark::AddConsoleCommand("test", &ConsoleCmd);

5) Adding OnTick callback:

Ark::AddOnTickCallback(&callback);

Example:

void OnTick(float DeltaSeconds) // will be called every tick
{
// do something here
}

Ark::AddOnTickCallback(&OnTick);

6) Adding your own hooks. You need to declare hook using a macro first:

DECLARE_HOOK(HookName, returnType, argType1, argType2, ...);

Now you can enable it:
Ark::SetHook("className", "functionName", &Hook_HookName, reinterpret_cast<LPVOID*>(&HookName_original));

Note:
We did not create this guide, We only found it and posted it on the forums. We need inspiring devs to use it and create some awesome plugins. We are hiring inspiring devs and will invest hundreds if not thousands of dollars into you if you can help us create public/paid plugins. Contact me via direct message and let's discuss.
 
Well, i wrote this guide for the first API version. The reason why it was removed is because it's outdated. However, it's not really a guide but just overview of a few API functions. Now, those functions have a small documentation directly in the code, so it's almost useless.
 
Well, i wrote this guide for the first API version. The reason why it was removed is because it's outdated. However, it's not really a guide but just overview of a few API functions. Now, those functions have a small documentation directly in the code, so it's almost useless.
Awesome to know, Yeah it didn't state which version or why it was removed. Good to know.
 
Back
Top