Post your modding questions here

4aiman
Member
 
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

Re: Post your modding questions here

by 4aiman » Tue Jan 20, 2015 09:46

A mesh node is a node with the "mesh" drawtype and a "mesh" field in definition filled with the name of the model file (*.obj is good enough).
No animations are supported for nodes as of yet.
 

User avatar
ExeterDad
Member
 
Posts: 1121
Joined: Sun Jun 01, 2014 20:00
In-game: ExeterDad

Re: Post your modding questions here

by ExeterDad » Tue Jan 20, 2015 12:34

4aiman defined it well, but in laymen terms. Meshnode allow you to bring new shapes into Minetest that are not block-like. For example, a meshnode may be a sphere. A bunny or just about anything. These items as 4aiman stated can not move around. They are stationary as a regular block or decoration.
٩(̾●̮̮̃̾•̃̾)۶

Kibbie and I have a beautiful public server now! HOMETOWN
 

User avatar
Kalabasa
Member
 
Posts: 34
Joined: Tue Jan 06, 2015 17:36
GitHub: Kalabasa
IRC: Kalabasa
In-game: Kalabasa

Re: Post your modding questions here

by Kalabasa » Tue Jan 20, 2015 12:59

Is it possible to use an animated texture for a mesh entity?
insert signature here
 

4aiman
Member
 
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

Re: Post your modding questions here

by 4aiman » Tue Jan 20, 2015 16:41

AFAIK, no (But that was suggested for Freeminer somewhere around 6 months ago).

For that one may use an entity. However, entities are not quite good for building and (what's more inconvenient) they don't provide a good collision mechanism.

Look at the chests in magichet or BFG - those are a_node+an_entity things - easy to dig & build and can be animated.
As one may notice, that all comes at a cost of higher CPU and network load...
 

User avatar
Merlin
Member
 
Posts: 63
Joined: Tue Dec 09, 2014 22:07
GitHub: sct-0
In-game: my

Re: Post your modding questions here

by Merlin » Wed Jan 21, 2015 17:12

How would one go about using a mesh for the character and mobs?
 

4aiman
Member
 
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

Re: Post your modding questions here

by 4aiman » Thu Jan 22, 2015 08:09

First, you'll need to have a model in *.x or *.b3d format.
Note, that scaling a *.b3d is a bit different from scaling an *.x (see below).
Also, note that besides a model and the stuff described here, you'll need to write some AI which would control a mob.

Now, let's get down to business:

1. You HAVE to follow names conventions, e.g. you can't register any entity with a name that doesn't correspond to the name of your mod-to-be.
In this case, I have a mod called "adbs" (ADvanced moBS).

So, in general, registration works like this:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
adbs.register_mob("adbs:zombie", {DEFINITION OF YOUR MOB})

^ I've registered a mob with the name "zombie" within my "adbs" mod. While "zombie" may be substituted with almost whatever alphanumeric character (plus underscores), the "adbs" part can't.

2. The "DEFINITION OF YOUR MOB" may contain as many fields as you'd like it to contain. But, since you need a model, the smallest variant would look smth like the following:

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
adbs.register_mob("adbs:zombie", {
    textures = {"adbs_zombie.png", "3d_armor_trans.png", "3d_armor_trans.png"},
    visual = "mesh",
    mesh = "adbs_skeleton.x",
    visual_size = {x=1,y=1,z=1},
    animation = {
        speed_normal    = 30,
        speed_run       = 40,
        stand_start     =  0,
        stand_end       = 79,
        walk_start      = 168,
        walk_end        = 187,
        run_start       = 230,
        run_end         = 245,
        punch_start     = 230,
        punch_end       = 230,
        jump_start      = 235,
        jump_end        = 235,
        mine_start      = 189,
        mine_end        = 198,
        walk_mine_start = 200,
        walk_mine_end   = 219,
        sit_start       =  81,
        sit_end         = 160,
    },
})


So, you'll need to:
- supply textures you would like to use for your model (you may change the default ones - those supplied with the model you're using);
- set "visual" property to "mesh";
- set "mesh " property to a string that has a name of your model ("adbs_skeleton.x" in this case);
- fill the "animation" property (you may call this one whatever you like - "animations" or "mob_anim" etc);
You may also be in a need to change the "visual_size" of a model if your one is too big or to small.

Note, that sub-fields in the "animation" property can be named whatever you'd like to as well.
The only thing you should be concerned is the right numbers of the starting and the ending frame of some animation. The names above were chosen to denote which action an entity performs. I mean, it would be easier to remember to use "run_start" and "run_end" should I want to make a mob look like it's running than trying to remember fields like "rs" and "re" (in the case I'd decided to abbreviate the names of fields).

3. Now, all what "register mob" does is setting a metatable for a mob definition and registering an entity:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
function adbs.register_mob(name, def)
    setmetatable (def,adbs.ad)
    minetest.register_entity(name, def)
end


The behaviour of the "register _entity" is described in lua_api.txt. Basically, it notifies the engine of your entity (a mob in our case). W/o calling this "register _entity" you won't be able to spawn your entities.

The "setmetatable" one, however is a part of Lua and one should read some lua manual to fully understand it. But in our case all you need to know is that setting a metatable is like setting a prototype for a mob.

You can define a table with all methods and properties you want to and then use that table as a base class for any mob.
Let's say you have defined a table which describes a cubic mob. You've implemented everything you want from it - it jumps, swims, follows the player but doesn't attack him. Kinda passive, right?
Then you just may have an idea of a similar mob but with some other model.

Should you describe his behavior once again?
Well, you CAN, but you should NOT really.

Instead use that passive mob table as a prototype for a new one by calling the "setmetatable".

In my case I have set an "adbs.ad" table as the prototype for the definition of my mob, stored in "def".
That means, that EVERY time MineTest won't find some field in my mob's definition It WILL search for it in the "adbs.ad" table and use it's methods and fields in case there are some.

So, for moving and following you may use adbs.ad methods, but to change the mob's model you should change the "mesh" property (and probably change the "contents" of the "animation" property).
Thus, instead of writing a new AI you'll use the same behaviour pattern and focus on making/searching for a new model!

4. I can't really post and explain the whole adbs.ad table, but you should know following: every entity has some special methods, just like nodes do.
For nodes there are "on_place", "after_dig" etc.
For entities there are "on_step", "on_activate", "on_punch" etc.
Those methods are described in the lua_api.txt.

Like I've said, the reason for having a prototype is to describe some general behaviour of ANY mob and then change it if you want in the definition of some particular mob.

You've asked about animations, so I'll describe that.

First, note that any entity prototype has the "self" property.
It helps to get and set values of the entity from within it's own functions.
If you dye you hair red, the code in Lua may be smth like:

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
adbs.dd = {
dye_hair = function(color)
   self.hair_color = color
end,
}


Now, if you call
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
self.dye_hair('red')
it would be the same as directly setting the "hair_color" property to "red".

The benefit of using a method, however, is that you can somehow manipulate the "color" value within a method prior to setting the actual color (or refuse to set it at all). For example, you may set color to "orange" instead "red" if your hair wasn't white, but "yellow".

The reason I've described prototyping and the "self" is that the only way to switch entity's animations is to call "set_animation" method of the object that was created when you've spawned an entity or a mob.

You see, every entity has a field "object" which controls the actual object in the Minetest world. Players are objects too.
So, every entity is also an object, but not every object is an entity (an object may well turned out to be a player).

Below you can see the call of "set_animation":
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
self.object:set_animation({x=self.animation.stand_start,y=self.animation.stand_end},30, 0)

The code above does the following:
- looks for "anination" property inside your definition of an entity;
- tries to get sub-fields "stand_start" and "stand_end" from the "animation" field;
- makes a table {x,y} and make "x" be equal to the "animation.stand_start" and "y" to the "animation.stand_end";
- sets the second parameter to 30 which is the speed with which the animation is to be played.
(Remember me telling you may call the "animation" property whatever you'd like to?)

Now, if there were no errors and you have your "animation" (or whatever else named) property with properly set "stand_start" and "stand_end" sub-fields and the actual model file has the frames from "stand_start" to "stand_end" you'll successfully change your mob animation to an idle one.

But how should your mob react and change it's state and animations?

There's "on_step" property for this.
It's called every global_step (smth like 0.1 sec with mobs around).

But the animation have some duration too!
It can't be played within 0.1 second and you don't want it to be played so fast either.

Luckily, once set, the animation won't be stopped until you'd call yet another set_animation.
That means, you should check for any change of a state of your mob and switch animations only when it's necessary to do so.

But that's not all!
You don't want your currently set animation to be re-set to the first frame too.
So, you should always check whether you already has switched to some animation before switching to it.
For example, if you've set animation to "run" you don't need to do that again until your mob will stop and then will start to run again.

There are multiple ways to achieve full control over entities, but for that you should analyze some mods which add mobs. I assume an old copy of simple_mobs (currently knows as the "mobs" by PilzAdam will be enough.
I suggest an old copy, because it is "simpler" than the latest ones to understand the basics.

___________________

As for players, if you don't want to change the set of available animations, the only thing you'll need is to get a different model.

Regardless of whether you want to add animations or not, you should register your model within minetest:

Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
default.player_register_model("3d_armor_character.x", {
    animation_speed = 30,
    textures = {
        armor.default_skin,
        "3d_armor_trans.png",
        "3d_armor_trans.png",
    },
    animations = {
        stand = {x=0, y=79},
        lay = {x=162, y=166},
        walk = {x=168, y=187},
        mine = {x=189, y=198},
        walk_mine = {x=200, y=219},
        sit = {x=81, y=160},
    },
})

^ That's a part of the "3d_armour" mod. It registers a new model. Note the sub-fields in the "animation" property - all of those should exist. The numbers may differ, though. As with the entities, those numbers show the first and the last frame of animation used when player perform different actions.

You may want to have your own "register_model" function, but you don't need it really. Just go and toy with the default one and you'll agree with me.





Feel free to ask more if my explanation would seem too blurry and uncertain ;)
 

User avatar
ExeterDad
Member
 
Posts: 1121
Joined: Sun Jun 01, 2014 20:00
In-game: ExeterDad

Re: Post your modding questions here

by ExeterDad » Thu Jan 22, 2015 11:04

@4aiman Wow! Now that's a nice reply.
٩(̾●̮̮̃̾•̃̾)۶

Kibbie and I have a beautiful public server now! HOMETOWN
 

User avatar
Don
Member
 
Posts: 1641
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Post your modding questions here

by Don » Thu Jan 22, 2015 17:20

I hope that reply is going in the wiki if it isn't there already.
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here
 

User avatar
stu
Member
 
Posts: 737
Joined: Sat Feb 02, 2013 02:51
GitHub: stujones11

Re: Post your modding questions here

by stu » Fri Jan 23, 2015 19:51

Could someone please explain to me the purpose of the [mask texture modifier, preferably with a quick use-case example.
I would also like to know the version number when [colorize was added, ie was it before or after the release of 0.4.11?
 

Hybrid Dog
Member
 
Posts: 2460
Joined: Thu Nov 01, 2012 12:46

Re: Post your modding questions here

by Hybrid Dog » Fri Jan 23, 2015 20:35

stu wrote:I would also like to know the version number when [colorize was added, ie was it before or after the release of 0.4.11?

https://github.com/minetest/minetest/co ... c/tile.cpp
ctrl+f can help you (if you use firefox)
 

User avatar
stu
Member
 
Posts: 737
Joined: Sat Feb 02, 2013 02:51
GitHub: stujones11

Re: Post your modding questions here

by stu » Fri Jan 23, 2015 20:48

Hybrid Dog wrote:
stu wrote:I would also like to know the version number when [colorize was added, ie was it before or after the release of 0.4.11?

https://github.com/minetest/minetest/co ... c/tile.cpp
ctrl+f can help you (if you use firefox)

Ah, so not part of current 'stable' then, thanks.

I still would like to know what 'mask' is for, I was kinda hoping it would allow me to colorize only a specific part of a texture but maybe I have the wrong idea altogether?
 

mcrefugee
New member
 
Posts: 4
Joined: Mon Sep 29, 2014 19:32

Re: Post your modding questions here

by mcrefugee » Sun Jan 25, 2015 21:50

Hi,

I'm working on a mod, and I need to know which side of a node is clicked.
To put it simply, I put a block (let's call it block_a) on the ground and when I click it with a special tool I want to put a block to the right hand side of block_a (relative to the player's position).
Of course the right hand side is different depending on where the player is standing at the moment of clicking.

Currently I can put my special block_a on the ground and click it with special tool. That is no problem. I can detect the click and put extra blocks in my world. That's no problem either.

But how to determine which block is to the right of the clicked block?

Alternatively is it possible to have a 'front' side to a node? And if that is possible, how to determine the node to the right of the 'front' side?

Any help is greatly appreciated.
 

TriBlade9
Member
 
Posts: 89
Joined: Fri Sep 05, 2014 09:35

Re: Post your modding questions here

by TriBlade9 » Sun Jan 25, 2015 22:59

mcrefugee, get the player's position, then the node's position, and from there it should be quite easily to calculate.

player:getpos() will give you the player position, and the node position is provided in the rightclicking callback.
 

User avatar
Fox
New member
 
Posts: 7
Joined: Mon Jan 26, 2015 00:36

Re: Post your modding questions here

by Fox » Mon Jan 26, 2015 00:56

Hello all,

Topic: Understanding some bits of tool capabilities?

Reason: I'd just like to understand some parts so I can know what's going on when I make my own tools.

More Info: Let's take the default stone pickaxe.
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_tool("default:pick_stone", {
   description = "Stone Pickaxe",
   inventory_image = "default_tool_stonepick.png",
   tool_capabilities = {
      full_punch_interval = 1.3,
      max_drop_level=0,
      groupcaps={
         cracky = {times={[2]=2.0, [3]=1.20}, uses=20, maxlevel=1},
      },
      damage_groups = {fleshy=3},
   },
})


I understand that groupcaps handles what blocks can actually be affected by the tool and how so. I get that uses is tied to the damage inflicted on the tool with use. It's the times and maxlevel part I'm not sure I grasp.

I think the number with fleshy might work similarly?

If someone could help clear up these things, it'd be much appreciated. :)
Last edited by Fox on Wed Jan 28, 2015 22:11, edited 2 times in total.
 

mectus11
Member
 
Posts: 14
Joined: Tue Nov 12, 2013 21:32

Re: Post your modding questions here

by mectus11 » Mon Jan 26, 2015 05:23

Topic: How to disable core HUD?
Reason: I'm working on a hud overhaul mod and I'm at that point where I want to disable the core hud elements of the health and breath.
More info: here's a screenshot of the issue I'm having, you can notice it above the hotbar, this issue can be fixed if I edit the game's default core lua files but I want it as a mod so it can be disabled at anytime.
Image
 

User avatar
Napiophelios
Member
 
Posts: 752
Joined: Mon Jul 07, 2014 01:14
GitHub: Napiophelios
IRC: Nappi
In-game: Nappi

Re: Post your modding questions here

by Napiophelios » Mon Jan 26, 2015 06:16

I think this is how Blockman does it with the Hud mod,
he doesnt disable it though:

local function hide_builtin(player)

local function custom_hud(player)
 

mcrefugee
New member
 
Posts: 4
Joined: Mon Sep 29, 2014 19:32

Re: Post your modding questions here

by mcrefugee » Mon Jan 26, 2015 10:54

TriBlade9: thank you, I've got it working now.
 

mectus11
Member
 
Posts: 14
Joined: Tue Nov 12, 2013 21:32

Re: Post your modding questions here

by mectus11 » Mon Jan 26, 2015 11:05

Napiophelios wrote:I think this is how Blockman does it with the Hud mod,
he doesnt disable it though:

local function hide_builtin(player)

local function custom_hud(player)



Know where I can find his mod or his mod's github and thanks! =)
 

TriBlade9
Member
 
Posts: 89
Joined: Fri Sep 05, 2014 09:35

Re: Post your modding questions here

by TriBlade9 » Mon Jan 26, 2015 11:15

mcrefugee wrote:TriBlade9: thank you, I've got it working now.

Glad to hear it! Can't wait to see your mod.
 

Hybrid Dog
Member
 
Posts: 2460
Joined: Thu Nov 01, 2012 12:46

Re: Post your modding questions here

by Hybrid Dog » Mon Jan 26, 2015 16:37

mcrefugee wrote:Hi,

I'm working on a mod, and I need to know which side of a node is clicked.
To put it simply, I put a block (let's call it block_a) on the ground and when I click it with a special tool I want to put a block to the right hand side of block_a (relative to the player's position).
Of course the right hand side is different depending on where the player is standing at the moment of clicking.

l like this idea.
 

User avatar
Don
Member
 
Posts: 1641
Joined: Sat May 17, 2014 18:40
GitHub: DonBatman
IRC: Batman
In-game: Batman

Re: Post your modding questions here

by Don » Tue Jan 27, 2015 15:06

mectus11 wrote:
Napiophelios wrote:I think this is how Blockman does it with the Hud mod,
he doesnt disable it though:

local function hide_builtin(player)

local function custom_hud(player)



Know where I can find his mod or his mod's github and thanks! =)

viewtopic.php?id=6342
Many of my mods are now a part of Minetest-mods. A place where you know they are maintained!

A list of my mods can be found here
 

User avatar
Kalabasa
Member
 
Posts: 34
Joined: Tue Jan 06, 2015 17:36
GitHub: Kalabasa
IRC: Kalabasa
In-game: Kalabasa

Re: Post your modding questions here

by Kalabasa » Wed Jan 28, 2015 00:51

Why can't I loop sound without an object attached to it?
insert signature here
 

User avatar
Kalabasa
Member
 
Posts: 34
Joined: Tue Jan 06, 2015 17:36
GitHub: Kalabasa
IRC: Kalabasa
In-game: Kalabasa

Re: Post your modding questions here

by Kalabasa » Wed Jan 28, 2015 14:01

How to get the name of an entity?

Edit:
Answered on IRC:
If object,
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
object.get_luaentity().name

If entity
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
entity.name
insert signature here
 

User avatar
Krock
Member
 
Posts: 3598
Joined: Thu Oct 03, 2013 07:48
GitHub: SmallJoker

Re: Post your modding questions here

by Krock » Wed Jan 28, 2015 20:05

Kalabasa wrote:Why can't I loop sound without an object attached to it?

You can loop a sound if you specify an object/player or a position.
Newest Win32 builds - Find a mod - All my mods
ALL YOUR DONATION ARE BELONG TO PARAMAT (Please support him and Minetest)
New DuckDuckGo !bang: !mtmod <keyword here>
 

User avatar
Fox
New member
 
Posts: 7
Joined: Mon Jan 26, 2015 00:36

Re: Post your modding questions here

by Fox » Wed Jan 28, 2015 22:18

Hello again,

While waiting for an answer to my previous question, I came up with another. Haha.

Topic: What is legacy_mineral for?

Reason: To know what it's for. Depending on what it does, maybe I could use it for my custom nodes.

Other Info: In case you don't know what I mean off the top of your head, here it is in the setup for stone.
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_node("default:stone", {
   description = "Stone",
   tiles = {"default_stone.png"},
   is_ground_content = true,
   groups = {cracky=3, stone=1},
   drop = 'default:cobble',
   legacy_mineral = true,
   sounds = default.node_sound_stone_defaults(),
})


Thanks for taking the time to read. :)
 

User avatar
maikerumine
Member
 
Posts: 946
Joined: Mon Aug 04, 2014 14:27
GitHub: maikerumine
In-game: maikerumine

Re: Post your modding questions here

by maikerumine » Thu Jan 29, 2015 03:13

I have a real dumb question(s) but they have me in confusion.

I am currently making a variant of the simple mobs mod, with all different characters, quite a few of them all with different attributes, rewards, speeds, etc. They use the same api but the code for all the variants are different. The question is: Does having many mods kill frame rate even if using the same model file? In my mind I think it should be okay but in testing they seem to bog down my game, and I don't want that. Is there a different solution to keeping the multiple mobs in world without losing too many FPS other than reducing the draw distance and amount spawned per chunk?

I imagine no, but had to ask anyway.
 

User avatar
lag01
Member
 
Posts: 190
Joined: Sun Mar 16, 2014 03:41
GitHub: AndrejIT
IRC: lag01
In-game: lag

Re: Post your modding questions here

by lag01 » Thu Jan 29, 2015 10:32

maikerumine wrote:I have a real dumb question(s) but they have me in confusion.

I am currently making a variant of the simple mobs mod, with all different characters, quite a few of them all with different attributes, rewards, speeds, etc. They use the same api but the code for all the variants are different. The question is: Does having many mods kill frame rate even if using the same model file? In my mind I think it should be okay but in testing they seem to bog down my game, and I don't want that. Is there a different solution to keeping the multiple mobs in world without losing too many FPS other than reducing the draw distance and amount spawned per chunk?

I imagine no, but had to ask anyway.


I think, the most load is created because some resource demanding functions are called too intensive.
For example, if at every server tick every mob call function to find all lua entities around him and checks if this entity is player. Or if at every server tick lua function is called to change every mob position and speed.
When i was tampering "simple mobs" mod for my server, i tried to make such function calls less frequent.
 

Hybrid Dog
Member
 
Posts: 2460
Joined: Thu Nov 01, 2012 12:46

Re: Post your modding questions here

by Hybrid Dog » Thu Jan 29, 2015 14:45

Fox wrote:Hello again,

While waiting for an answer to my previous question, I came up with another. Haha.

Topic: What is legacy_mineral for?

Reason: To know what it's for. Depending on what it does, maybe I could use it for my custom nodes.

Other Info: In case you don't know what I mean off the top of your head, here it is in the setup for stone.
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
minetest.register_node("default:stone", {
   description = "Stone",
   tiles = {"default_stone.png"},
   is_ground_content = true,
   groups = {cracky=3, stone=1},
   drop = 'default:cobble',
   legacy_mineral = true,
   sounds = default.node_sound_stone_defaults(),
})


Thanks for taking the time to read. :)

l tried to find "legacy_mineral" (with grep -rl) in other files but it's only in ./games/minimal/mods/default/init.lua and ./games/minetest_game/mods/default/nodes.lua. Maybe it's used for decoration.
 

User avatar
Fox
New member
 
Posts: 7
Joined: Mon Jan 26, 2015 00:36

Re: Post your modding questions here

by Fox » Thu Jan 29, 2015 16:52

Hybrid Dog wrote:l tried to find "legacy_mineral" (with grep -rl) in other files but it's only in ./games/minimal/mods/default/init.lua and ./games/minetest_game/mods/default/nodes.lua. Maybe it's used for decoration.


Hello Hybrd Dog,

Yes, I couldn't find it anywhere else either. Not a mention in lua_api.txt. I didn't know if it was maybe an outdated property, something like decoration as you said, or what. I don't seem to see it in the other mods I have either, so maybe it's something I can ignore like everyone else seems to be doing. xD That it doesn't do anything special I might want, maybe even just does nothing.

Just can't help but wonder though.
 

User avatar
Kalabasa
Member
 
Posts: 34
Joined: Tue Jan 06, 2015 17:36
GitHub: Kalabasa
IRC: Kalabasa
In-game: Kalabasa

Re: Post your modding questions here

by Kalabasa » Thu Jan 29, 2015 17:05

Krock wrote:
Kalabasa wrote:Why can't I loop sound without an object attached to it?

You can loop a sound if you specify an object/player or a position.


What about background music? It's a sound that loop-plays globally and not attached to an object.
insert signature here
 

PreviousNext

Return to Modding Discussion

Who is online

Users browsing this forum: No registered users and 16 guests

cron