• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

TVP 7.4 Develop & TVP 7.7 Stable Full Distribution

Tomorrow im creating a public repo of the attached files and it will be open-source public repo.

Those files will be updated, any dev can contribute and I will also browse my private repository and add fixes ive patched when I do have time, which is kind of limited for the moment with my upcoming launch.

Its important that everyone pulls their weight so that we together as a community can repair the damages this distribution has causes to countless victims.

Even reporting issues is a form of contribution.

I also want to clarify that this thread is about revealing injustices. Do not take this thread as an assumption of me advertising to sell my private sources because that is not the case in any way, shape or form.

The way we will go is to upload these files to a public repo and work down all the issues, thats it.
It would be great to put it in a public repo. I have some stuff to add :)
 
If you learn how the system work here you can do anything with the sources believe me

We’re more than aware hehe. I first started decompiling the real engine in 2018.

It’s rly amazing stuff when you get to know every nook n cranny. CIP engine is far superior to TFS in every aspect, except extendability.
 
We’re more than aware hehe. I first started decompiling the real engine in 2018.

It’s rly amazing stuff when you get to know every nook n cranny. CIP engine is far superior to TFS in every aspect, except extendability.
Well we really did an amazing job converting all the movements, actions and creaturescripts from tfs to cip engine moveuse.dat file how simple is everything.
 
Well we really did an amazing job converting all the movements, actions and creaturescripts from tfs to cip engine moveuse.dat file how simple is everything.
Convert onDeath event that is assigned onSpawn only if the creature holds an item of a custom attribute, and send json, after 30 seconds, to players from the damage map.

extendability
☝️ Which is arguably the biggest bottleneck for a single, inexperienced developer working on a server nowadays.
 
Last edited:
Convert onDeath event that is assigned onSpawn only if the creature holds an item of a custom attribute, and send json, after 30 seconds, to players from the damage map.


☝️ Which is arguably the biggest bottleneck for a single, inexperienced developer working on a server nowadays.
Actually everything that we have done works exactly as it works on tfs, the most hard part was creaturescripts but heeyy these lines on moveuse dat and few sources edits buumm….
 
Actually everything that we have done works exactly as it works on tfs, the most hard part was creaturescripts but heeyy these lines on moveuse dat and few sources edits buumm….

I am sure you implemented the whole event interface in "few sources" edits, and then decided to use cipsoft script instead of something Turing-complete. Even if that were true, even the most naive developer would consider it likely to contain bugs - and you say it works exactly as it works elsewhere.
Weird flex but ok

PS: I am sure it is a great idea to keep all scripts in one single file. What could possibly go wrong?
 
Last edited:
Convert onDeath event that is assigned onSpawn only if the creature holds an item of a custom attribute, and send json, after 30 seconds, to players from the damage map.


☝️ Which is arguably the biggest bottleneck for a single, inexperienced developer working on a server nowadays.

Indeed.

I got to work on a forgotten, half-baked, Lua-capable build of CIP sources with copy-pasted fragments from TFS, from the time me and Mark first knew each other. But it's a pain because the entire API has to be implemented by hand and we didn't have the time to do it. It also involved getting CIP's architecture to emulate TFS which would result into a malformed monster. I was also (very) unfamiliar with Lua's C API at the time.

This is an example of me trying to emulate TFS' Container with CIP's Containers:

C++:
int LuaScriptInterface::luaContainerGetItem(lua_State* L)
{
    // container:getItem(index)
    Object container = lua::getObject(L, 1);
    if (container == NONE || !container.exists() || !container.getFlag(CONTAINER)) {
        lua_pushnil(L);
        return 1;
    }

    uint32_t index = lua::getNumber<uint32_t>(L, 2);

    Object item = GetContainerObject(container, index);
    if (item != NONE && item.exists()) {
        lua::pushObject(L, item);
    } else {
        lua_pushnil(L);
    }
    return 1;
}

So instead I embraced CIP's limitations and went hardcore on the C++ path :p.


I am sure you implemented the whole event interface in "few sources" edits, and then decided to use cipsoft script instead of something Turing-complete. Even if that were true, even the most naive developer would consider it likely to contain bugs - and you say it was easy lol
Weird flex but ok

I think this depends a lot on what you consider easy. Turns out that because of CIP's Object API, messing up objects or creatures will hardly create a critical failure, unless you mess up the delicate linked lists, at most you will get actions failing, NPCs not reacting, or the sort. It's not the same in TFS where poor heap management will result directly in a segment violation. CIP's is a bit more painful because everything has to be done by hand
 

I am sure you implemented the whole event interface in "few sources" edits, and then decided to use cipsoft script instead of something Turing-complete. Even if that were true, even the most naive developer would consider it likely to contain bugs - and you say it works exactly as it works elsewhere.
Weird flex but ok

PS: I am sure it is a great idea to keep all scripts in one single file. What could possibly go wrong?
My hands not my head my hands 🤣🤣
 
Indeed.

I got to work on a forgotten, half-baked, Lua-capable build of CIP sources with copy-pasted fragments from TFS, from the time me and Mark first knew each other. But it's a pain because the entire API has to be implemented by hand and we didn't have the time to do it. It also involved getting CIP's architecture to emulate TFS which would result into a malformed monster. I was also (very) unfamiliar with Lua's C API at the time.

This is an example of me trying to emulate TFS' Container with CIP's Containers:

C++:
int LuaScriptInterface::luaContainerGetItem(lua_State* L)
{
    // container:getItem(index)
    Object container = lua::getObject(L, 1);
    if (container == NONE || !container.exists() || !container.getFlag(CONTAINER)) {
        lua_pushnil(L);
        return 1;
    }

    uint32_t index = lua::getNumber<uint32_t>(L, 2);

    Object item = GetContainerObject(container, index);
    if (item != NONE && item.exists()) {
        lua::pushObject(L, item);
    } else {
        lua_pushnil(L);
    }
    return 1;
}

So instead I embraced CIP's limitations and went hardcore on the C++ path :p.



I think this depends a lot on what you consider easy. Turns out that because of CIP's Object API, messing up objects or creatures will hardly create a critical failure, unless you mess up the delicate linked lists, at most you will get actions failing, NPCs not reacting, or the sort. It's not the same in TFS where poor heap management will result directly in a segment violation. CIP's is a bit more painful because everything has to be done by hand
I am not saying that introducing a Lua interface is not possible - everything is, but even testing that functionality alone is a pretty big task.
You might not corrupt the Object, but you can corrupt the Lua stack with a single typo - in the end, we are all humans.

Meanwhile there is a guy in this thread who ported "everything", he scripts that in movevent.dat, and it was "easy" - the only thing that is easy is to spot the fact that he does not sound too coherent and i guess I should pay less attention to him ... unless he proves me wrong, and I'll be happy to change my mind and apologize then.

Here is the code I would want to see in action @Olddies example.lua (https://gist.github.com/marcingoralski/2e6cd07e607735dcd18b230d8a7fc661)
Took me only a couple of minutes to create, and from what you are trying to say, it should be even easier for you to replicate that.
A small snippet of movevent.dat and a gif of working functionality will do.
 
Last edited:
I am not saying that introducing a Lua interface is not possible - everything is, but even testing that functionality alone is a pretty big task.
You might not corrupt the Object, but you can corrupt the Lua stack with a single typo - in the end, we are all humans.

Meanwhile there is a guy in this thread who ported "everything", he scripts that in movevent.dat, and it was "easy" - the only thing that is easy is to spot the fact that he does not sound too coherent and i guess I should pay less attention to him ... unless he proves me wrong, and I'll be happy to change my mind and apologize then.

Here is the code I would want to see in action @Olddies example.lua (https://gist.github.com/marcingoralski/2e6cd07e607735dcd18b230d8a7fc661)
Took me only a couple of minutes to create, and from what you are trying to say, it should be even easier for you to replicate that.
A small snippet of movevent.dat and a gif of working functionality will do.
Well what shocked me more was that he said Fusion32's engine runs without issues and can be hosted out of box which is pretty incredible. Not one human or AI errror in that much code even revealed in production? Its actually awesome ngl.
 
Not going to tag anyone and on my side i do what my server require to be running with all the customs shits that i have on it, i dont like orshas ots basically go and check the server nothing more to say.
 
Well what shocked me more was that he said Fusion32's engine runs without issues and can be hosted out of box which is pretty incredible. Not one human or AI errror in that much code even revealed in production? Its actually awesome ngl.
I am not sure if he actually tested it in the production environment yet tho.
Although I am sure fusion will manage to patch it.

Not going to tag anyone and on my side i do what my server require to be running with all the customs shits that i have on it, i dont like orshas ots basically go and check the server nothing more to say.
I guess it wasn't that "easy" in the end 🤭
 
He said he's hosting those files. Its under his name
I've been following his progress since 2020~, I am perfectly aware of that.
Not to diminish anyone's work, but even canary might seem stable with <10 players online.
 
I've been following his progress since 2020~, I am perfectly aware of that.
Not to diminish anyone's work, but even canary might seem stable with <10 players online.
Thats nostalrius engine its name ask for itself and @Evil Mark 5 years online without any reset also big things to classicot on the way with this new realots engine thanks to Fusion32 ClassicOT - Free Multiplayer Online Role Playing Game (https://destiny.classicot.online) this server is not a copy is 1:1 the version what we claim to be incluiding the gameplay but you all can say whatever you want
 
Thats nostalrius engine its name ask for itself and @Evil Mark 5 years online without any reset also big things to classicot on the way with this new realots engine thanks to Fusion32 ClassicOT - Free Multiplayer Online Role Playing Game (https://destiny.classicot.online) this server is not a copy is 1:1 the version what we claim to be incluiding the gameplay but you all can say whatever you want
I am not saying it's not, and what you guys achieved is admirable, not to mention your consistency (I myself hopped 3 projects in the meantime) - but I would hate if someone got misled to think it is "easy" or "simple" to do what you can do with TFS Lua.

I am one of those guys who appreciate the old mechanics, but would love to introduce new as well - I am afraid (unless you provide that code I asked for), I am not changing my mind about TFS being a much friendlier environment for that.
Not only for me, but especially for new people, and that fact validates the point of further "TVP" development.
 
Thats nostalrius engine its name ask for itself and @Evil Mark 5 years online without any reset also big things to classicot on the way with this new realots engine thanks to Fusion32 ClassicOT - Free Multiplayer Online Role Playing Game (https://destiny.classicot.online) this server is not a copy is 1:1 the version what we claim to be incluiding the gameplay but you all can say whatever you want
Oh I thought you were hosting Fusion32's server, that's why I was kinda confused seeing it so stable right out of the gate. But I didnt mean anything bad! I was just surprised if the public RE sources worked out of the box because even Fusion mentions that they're probably not the best for use in a live production out of the box.
 
Back
Top