© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•4y ago•
2 replies
~FallenParadise~

❔ NLua csharp hooks

Hi. Im using
NLua
NLua
to embed
Lua
Lua
in my project.
Rn i can replace default
print
print
method to use hooked console.

How i can do same but for require method?
in example it dosen't works

var script = """

    require "chunk";

    testPrint("hello world")
    print('test');

    """;

var chunk = """
    function testPrint(arg)
        print(arg .. "hook 2");
    end
    """;


var luaEngine = new NLua.Lua(true);
luaEngine.State.Encoding = Encoding.UTF8;

luaEngine.RegisterFunction("print", PrintHook<object>);
luaEngine.RegisterFunction("require", RequireHook);

try
{
    var result = luaEngine.DoString(script, "Main.lua");
}
catch (Exception ex)
{
    Console.WriteLine(ex);
}

static void PrintHook<T>(T text)
{
    Console.WriteLine($"Hooked {text}");
}

LuaStatus RequireHook(string chunkName)
{
    try
    {
        Console.WriteLine($"Hooked {chunkName}");
        // not works
        //return luaEngine.State.LoadString(chunk);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
    }
    // fallback
    return LuaStatus.OK;
}
var script = """

    require "chunk";

    testPrint("hello world")
    print('test');

    """;

var chunk = """
    function testPrint(arg)
        print(arg .. "hook 2");
    end
    """;


var luaEngine = new NLua.Lua(true);
luaEngine.State.Encoding = Encoding.UTF8;

luaEngine.RegisterFunction("print", PrintHook<object>);
luaEngine.RegisterFunction("require", RequireHook);

try
{
    var result = luaEngine.DoString(script, "Main.lua");
}
catch (Exception ex)
{
    Console.WriteLine(ex);
}

static void PrintHook<T>(T text)
{
    Console.WriteLine($"Hooked {text}");
}

LuaStatus RequireHook(string chunkName)
{
    try
    {
        Console.WriteLine($"Hooked {chunkName}");
        // not works
        //return luaEngine.State.LoadString(chunk);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
    }
    // fallback
    return LuaStatus.OK;
}
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

NLua problem
C#CC# / help
3y ago
✅ Csharp serializing
C#CC# / help
3y ago
❔ csharp error
C#CC# / help
4y ago
syringe heal csharp
C#CC# / help
2w ago